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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步