java - 在 RecyclerView 中切换项目 View 类型

标签 java android adapter android-recyclerview

我的逻辑看似没问题,但就是行不通。 我有 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/

相关文章:

Android - 在 EditText 中处理 "Enter"

android - 如何选择/取消选择所有复选框?

java - 查找段落中的非 HTML 标记词

java - 从 MathMl 生成 java 代码

java - 如何使用 Tomcat 指定远程 JKS keystore ?

java - 双注入(inject)

android - 从strings.xml 中的另一个字符串引用一个字符串?

android - 带有BottomSheet的windowSoftInputMode不起作用

android - 在 ListView 中选择时更改 ListItem View

java - Android GridView 适配器