Android架构组件 - 未触发Observable

时间:2017-10-09 07:55:14

标签: android observable lifecycle android-architecture-components

我是一个运行Architecture Components的简单应用程序。自从库的最新更新(" Beta2")以来,我的observable没有被触发的问题(在片段中,相同的代码适用于活动)

以下是目前无效的示例。

class SampleFragment : Fragment() {

    private var isDataReady = MutableLiveData<Boolean>()

    private val registry = LifecycleRegistry(this)

    override fun getLifecycle(): LifecycleRegistry = registry

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_main2, container, false)
    }

    override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        fab.setOnClickListener { _ ->
            isDataReady.postValue(true)
        }
        isDataReady.observe(this, Observer {
            Snackbar.make(fab, "Hello!", Snackbar.LENGTH_LONG).show()
        })
    }
}

我错过了什么吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我终于找到了解决上述问题的方法。

由于我们处于片段中,我必须使用Activity来观察。 (它应该是“这个”,但它到目前为止还不起作用。

isDataReady.observe(activity, Observer {

我想这是暂时的修复...

感谢您的帮助