我正在尝试从Recyclerview中选择值,突出显示所选项目。我想更改bg颜色和文本颜色和图像。现在我使用以下代码。
selector_row :
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/darker_gray" android:state_pressed="false" android:state_selected="true" />
<item android:drawable="@color/store_search_list_item_background"/>
</selector>
onBindViewHolder上的recyclerview :
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedItems.get(position, false)) {
selectedItems.delete(position);
holder.itemView.setSelected(false);
}
else {
selectedItems.put(position, true);
holder.itemView.setSelected(true);
}
}
});
现在我可以突出显示所选行。我的问题是 1)当我选择另一行时,它也会突出显示。我想只突出一行。如果用户选择另一行,则不应突出显示前一行。
2)突出显示行时如何更改文字和图像。
请让我解决这两个问题。
答案 0 :(得分:2)
您可以在变量中保存点击位置,这样每当发生新的点击时,您只需用新点击的位置替换您的变量值,之后不要忘记使用 notifyItemChanged() ;现在,您的 bindview 非常简单,检查您选择的位置并更改项目的背景。
粗糙的前。
$config['last_link'] = 'Last';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';`
答案 1 :(得分:0)
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:foreground="@drawable/xx_sel"
或
android:foreground="@drawable/xx_bg_sel"
我用它让我的相册照片项目pregress或fouce可以有一个面具。
愿它能帮到你。