这些是有问题的功能:
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可能并不便宜。
如果我不滚动,则不会被调用多次。
这是正常行为吗?