我当前正在将RecyclerView与MVVM数据绑定一起使用(嗯,数据绑定可能无关紧要)。 无论如何,我想做的是在recyclerView中的数据显示一个特定的布局视图 是空的。当我使用AdapterDataObserver onChanged(以下代码)时,它可以工作。但是问题是当我 打开我的应用程序,我的“空闲时间”视图仅显示一秒钟(例如故障/轻弹),然后正常显示列表。我无法修复 打开屏幕时不显示此空时间视图的问题。一些示例示例或代码将很棒! 我希望收到您的来信!
下面的部分代码
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel = activity?.run {
ViewModelProviders.of(this, viewModelFactory).get(ShopViewModel::class.java)
} ?: throw Exception("Invalid Activity")
val adapter = ShopRecyclerAdapter(viewModel, mIndex))
val emptyObserver = object : RecyclerView.AdapterDataObserver() {
override fun onChanged() {
val isEmpty = adapter.itemCount == 0
val isfavImage = if (mIndex == 2) R.drawable.img_fav else R.drawable.img_none
val isNoData = if (isEmpty || adapter == null) View.VISIBLE else View.GONE
val visibility = if (isEmpty || adapter == null) View.GONE else View.VISIBLE
binding.layoutSwipeRefresh.visibility = visibility
binding.noneLayout.visibility = isNoData
binding.noneLayout.item_coupon_none_im.setImageResource(isfavImage)
}
}
adapter.registerAdapterDataObserver(emptyObserver)
emptyObserver.onChanged()
val recyclerView: RecyclerView = binding.shopRecycleView
val layoutManager = GridLayoutManager(activity, 1, RecyclerView.VERTICAL, false)
recyclerView.layoutManager = layoutManager
答案 0 :(得分:0)
如何获取列表数据?假设您有一个loading state
,它只有一个加载微调器。在获取列表数据之后,请注册观察者以显示空白视图或填充列表