android - 当布局嵌套时,recyclerview onBind 无法正常工作

标签 android android-recyclerview android-framelayout

我试图实现一个简单的 RecyclerView 示例,其中项目交替着色 /image/BFmJi.jpg效果很好
如果没有 Framelayout,我们将获得清晰的着色代码,如第一张图片所示 即这些元素以特定的图案着色 然而 添加 FrameLayout 部分后,我遇到颜色代码未正确显示的问题 /image/phKNT.jpg

从技术上讲,添加 FrameLayout 部分后发生了什么变化

这是 RecyclerView 类 onBindView 代码:

@Override
public void onBindViewHolder(DataAdapter.ViewHolder holder, int position) {
    if(values.contains(position+1)){
        holder.textView1.setBackgroundColor(ContextCompat.getColor(context,R.color.colorAccent));
        System.out.println("Color Check : "+values + " "+position);
    }
    String value = MyData[position];
    holder.textView1.setText(value);
}

这是 RecyclerView xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <FrameLayout
        android:layout_width="match_parent"
        android:elevation="16dp"
        android:layout_margin="16dp"
        android:id="@+id/frame1"
        android:background="#fff"
        android:layout_height="200dp">
        <TextView
            android:layout_width="match_parent"
            android:id="@+id/textView1"
            android:text="Sample Items"
            android:layout_height="wrap_content"
             />
    </FrameLayout>
</LinearLayout>

编辑1:

我需要的逻辑是项目 1,3,6,10,15 应该是彩色的(FrameLayout 或 textView )
逻辑工作正常,直到在 RecyclerView 帖子的 xml 布局中引入 FrameLayout
被着色的项目是 1,3,6,8,10,13,15

最佳答案

我不明白你的逻辑,但如果你使用 RecyclerView 作为简单列表而不是“卡片”时它起作用,可能是因为当你在列表上使用大量大小时 onBindViewHolder 只是打印所有内容而不回收recyclerview 将尝试重用该内容。

你可以试试这个:

holder.setIsRecyclable(false);

关于android - 当布局嵌套时,recyclerview onBind 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596237/

相关文章:

android - 以编程方式将 MATCH_PARENT 用于 FrameLayout 内的 RelativeLayout

android - 将 FrameLayout 转换为位图

android - Firebase 手机身份验证仅在 Release模式下不启动 OTP,但即使在为 Release模式添加 sha1 后也可以在 Debug模式下工作

android - GPS 安卓错误!

android - Localytics - 以编程方式设置应用程序 key

android - 如何使用 RecyclerView 和 LinearLayoutManager 将项目显示在顶部,而不管项目数量如何?

android - 将 frameLayout 的前景图像放在前面

android - Instant Apps 上的文本转语音崩溃

java - RecyclerView 列表不可见

android - RecyclerView items with big empty space v25.2.0