使用ListAdapter 的submitList之后列表长度为0
搞了很多个小时了,也不知道问题在哪?强烈求助啊。。。
private var mAdapter: CrimeAdapter = CrimeAdapter(mutableListOf())//-------------1
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentCrimeListBinding.inflate(inflater, container, false)
binding.crimeRecyclerview.layoutManager =
LinearLayoutManager(context)//把加载的recyclerview视图的布局设为线性布局
binding.crimeRecyclerview.adapter = mAdapter//-------------2
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
crimeListViewModel.crimeListLiveData.observe(
viewLifecycleOwner,
{ crimes ->
crimes?.let {
mAdapter.submitList(getNewCrimes(crimes))//有更新就提交给adapter-------------3
}
}
)
}
其他的没什么的,感觉重点是1 2 3.我有一个fragment, 里面有一个recyclerview,我再1那里先用一个空的list初始化了adapter,在onCreateView那里把recyclerview的adpater指向了那个adapter。在3那里是用Livedata在后台查询到crimes有变化就用submitList提交一个列表。断点调试之后到3的下一行其实都是没问题的。


但是就是到这里的时候, 它就是一个空的列表。。。。。
注意时序问题
submitList更重要啊,这个代码你反而没给出来。前面说的都不重要。都是正常操作。