我的逻辑看似没问题,但就是行不通。 我有 2 个 View A 和 B,我只想在 A 显示 5 次后显示 B 一次。 在我的适配器中
int itemCount = 0;
@Override
public int getItemViewType(int pos){
itemCount++;
if(itemCount == 4){
itemCount = 0;
return VIEW_B;
}else{
return VIEW_A;
}
}
我似乎不知道出了什么问题。任何帮助就足够了。
最佳答案
问题是你的 itemCount
变量;你应该摆脱它。 Android 系统可以(并且将会)针对相同位置重复调用 getItemViewType()
,并且会使用不连续的位置参数来调用它。因此,您必须能够仅根据该方法的 pos
参数返回一个值。
试试这个:
@Override
public int getItemViewType(int pos){
if((pos + 1) % 6 == 0){
return VIEW_B;
}else{
return VIEW_A;
}
}
请注意,if
子句不仅仅是if (pos % 5 == 0)
,因为您说过您不想以“type a”开头查看。
关于java - 在 RecyclerView 中切换项目 View 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51487851/