Библиотека подкачки Android показывает пустой видоискатель, когда список пуст - PullRequest
0 голосов
/ 27 сентября 2019

Я использую библиотеку подкачки с recyclerView, и моя задача - показывать пустой viewHolder, когда я получаю пустой arrayList от сервера.

Я пытался проверить, что список пуст или нет, но когда я получаю ответ, он вызываетметод Observer 2 раза (первый раз пустой список, второй раз реальный список), после того как я использую swipeRefresh, класс DataSource отправляет пустой список, поскольку тот же список уже находится в кеше.Кроме того, у меня есть нумерация страниц и проверка размера набора данных затруднительна, так как есть много случаев.

/**
 * Simple Adapter used to show list of Appeals with pagination
 */
class MyAppealsAdapter : PagedListAdapter<Appeal, RecyclerView.ViewHolder>(diffCallBack) {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        return AppealsViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.item_my_appeal, parent, false))
    }

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        when (holder) {
            is AppealsViewHolder -> holder.bind(position)
        }
    }

    inner class AppealsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        @SuppressLint("SimpleDateFormat")
        fun bind(position: Int) {
            getItem(position)?.let { item ->
                item.fields?.get(AppealKeyObj.K_SUB_ISSUE)?.let {
                    itemView.mTypeOfAppeal.text = it
                }
            }
        }
    }

    companion object {
        open var diffCallBack: DiffUtil.ItemCallback<Appeal> = object : DiffUtil.ItemCallback<Appeal>() {
            override fun areItemsTheSame(oldItem: Appeal, newItem: Appeal): Boolean {
                return oldItem.id === oldItem.id
            }

            override fun areContentsTheSame(oldItem: Appeal, newItem: Appeal): Boolean {
                return oldItem == newItem
            }
        }
    }
}

Пожалуйста, помогите показать пустой viewHolder, когда я получу пустой arrayList

enter image description here

...