【问题标题】:Recycler View Item not changing its colour回收商查看项目不改变其颜色
【发布时间】:2017-03-14 14:36:40
【问题描述】:

我有一个回收器视图和一个网格布局管理器。对于为回收器视图膨胀的布局项,我设置了这样的背景颜色

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:orientation="vertical">

    <TextView
        android:id="@+id/regNo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.9"
        android:background="@drawable/student_li_bgcolor"
        android:gravity="center"
        android:padding="7dp"
        android:clickable="true"
        android:text="15BEC0584"
        android:textColor="#64DD17"
        android:textSize="17dp" />

</LinearLayout>

student_li_bgcolor的内容是这样的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:state_selected="true">
        <shape>
            <solid
                android:color="#64DD17"
                />
        </shape>
    </item>
    <item
        android:state_pressed="true"
        >
        <shape>
            <solid
                android:color="#ffffff"
                />
        </shape>
    </item>
    <item
        android:state_selected="false"
        >
        <shape>
            <solid
                android:color="#ffffff"
                />
        </shape>
    </item>
</selector>

如果用户至少按下一次,我想要实现的是将项目颜色更改为绿色。

使用此代码

 <item
        android:state_pressed="true"
        >
        <shape>
            <solid
                android:color="#ffffff"
                />
        </shape>
    </item>
    <item
        android:state_pressed="false"
        >
        <shape>
            <solid
                android:color="#ffffff"
                />
        </shape>
    </item>

我可以在点击时更改背景颜色。但是一旦用户将手指移开,它就会恢复到原来的颜色。我不想要那个。请帮助我...提前致谢...

【问题讨论】:

    标签: java android colors onclick android-recyclerview


    【解决方案1】:

    如果您想永久更改背景颜色,您应该添加一个OnClickListener 并在OnClickListener.onClick() 中进行。

    &lt;selector&gt; 只是一个状态列表资源,会根据按钮的当前状态改变外观。

    onClickListener的使用方法请参考this

    如果能帮上忙我很高兴。

    【讨论】:

    • 我已经尝试过使用 view.setBackground(Color.parseColor("#000000")) 其中 view 是我们在 recyclerview viewHolder one 中得到的
    • 但这对我没用
    • 您能否展示您的 onClickListener() 代码,以便我试一试并给您一些反馈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多