RecyclerView的PagedListAdapter中的getItemViewType多次调用

时间:2018-06-28 16:34:00

标签: android android-recyclerview kotlin

这些是有问题的功能:

override fun getItemViewType(position: Int): Int {
    Log.e("getItemViewType", "$position")
    return position%2
}

override fun onCreateViewHolder(p0: ViewGroup, p1: Int): BaseViewHolder {
    Log.e("onCreateViewHolder", "$p1")
    return when(p1) {
        0 -> PostViewHolder.create(p0)
        1 -> AdViewHolder.create(p0)
        else -> GenericViewHolder.create(p0)
    }
}

override fun onBindViewHolder(p0: BaseViewHolder, p1: Int) {
    Log.e("onBindViewHolder", "$p1")
}

所以基本上我正在记录所有内容,按预期每个视图只调用一次onCreateViewHolder和onBindViewHolder。

但是,滚动时每个视图的getItemViewType调用大约是10次,这让我感到担忧,因为getItem可能并不便宜。

如果我不滚动,则不会被调用多次。

这是正常行为吗?

0 个答案:

没有答案