首页 > 解决方案 > 如何使用从片段创建的观察者来切换带有来自 ViewModel 的消息的快餐栏

问题描述

viewModelMainActivity调用委托的片段来创建msg内部的观察者提供onViewCreated

viewModel.msg.observe(requireActivity(), Observer {
            if(it.isNotEmpty() && !it.isNullOrBlank()) {
                Snackbar.make(requireView().rootView, it, Snackbar.LENGTH_SHORT)
                viewModel.onShowMsgComplete()
            }
        })

msg观察者内部正确接收到,但小吃吧未显示。

标签: androidandroid-fragmentsviewobservers

解决方案


这是一个简单的错误,你犯了。您没有显示Snackbar通过调用.show()方法。

viewModel.msg.observe(requireActivity(), Observer {
        if(it.isNotBlank()) {
            Snackbar.make(requireView().rootView, it, Snackbar.LENGTH_SHORT).show()
            viewModel.onShowMsgComplete()
        }
    })

推荐阅读