you are best|

ou尼酱~~~

园龄:4年10个月粉丝:1关注:0

UI刷新会比数据库查询速度快

我想在一个fragment创建的时候,判断当前recyclerview获取到的列表是不是空的,是空的,就让一个控件不可见,否则,可见。

可是,因为UI刷新是比数据库查询速度快的,数据库查询是在后台线程做的。因此无论我在fragment的onActivityCreated或onStart里检测当前列表,都是快于数据库查询,因此一开始控件总是检测到列表为空是可见的。正确做法是放在observe里和crime的更新一起判断。

复制代码
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        binding.crimeRecyclerview.adapter = mAdapter//
        crimeListViewModel.crimeListLiveData.observe(
            viewLifecycleOwner,
            { crimes ->
                crimes?.let {
                    if (crimes.isNotEmpty()) binding.remindAdd.visibility = View.GONE
                    else binding.remindAdd.visibility = View.VISIBLE
                    mAdapter.submitList(crimes)//有更新就提交给adapter
                }
            }
        )
    }
复制代码

 

本文作者:ou尼酱~~~

本文链接:https://www.cnblogs.com/--here--gold--you--want/p/14836945.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   ou尼酱~~~  阅读(129)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起