【问题标题】:AdapterDataObserver's onChange method works but shows the emptyView for a split secondAdapterDataObserver 的 onChange 方法有效,但会在一瞬间显示 emptyView
【发布时间】:2019-03-07 13:21:45
【问题描述】:

我目前正在使用带有 MVVM 数据绑定的 RecyclerView(数据绑定可能无关紧要)。 无论如何,我要做的是在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

【问题讨论】:

    标签: android kotlin android-recyclerview


    【解决方案1】:

    如何获取列表的数据?假设您有一个只有一个加载微调器的loading state。获取列表的数据后,注册观察者以显示空视图或填充列表

    【讨论】:

    • 使用 Retrofit 从存储库中的模型视图
    • 那么你可以在服务器请求后注册emptyObserver。或在请求返回后致电您的emptyObserver.onChanged()
    猜你喜欢
    • 2016-06-17
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多