В настоящее время я использую 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