我正在尝试将CAB(上下文操作栏)添加到我的应用程序中的ListView,除了一件事,一切都很顺利。当我最初添加CAB时,虽然选中了CAB,但是当我长按它时背景颜色没有改变。我的解决方法是覆盖onItemCheckedStateChanged并在那里设置背景颜色。我的问题是,当我尝试将背景颜色设置为之前的颜色时,我不能。 ListView背景似乎褪色,这意味着我无法选择与背景融合的颜色。你们这是怎么做到的?这是我的代码:
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position,
long id, boolean checked) {
if (checked) {
//#6DCAEC is a type of Holo Blue that I want.
listView.getChildAt(position).setBackgroundColor(Color.parseColor("#6DCAEC"));
} else {
//#f1f1f1 was the closest I could get to the background put it still seems out of place
listView.getChildAt(position).setBackgroundColor(Color.parseColor("f1f1f1"));
}
}
答案 0 :(得分:0)
关闭ListView
上的选择模式:
mListView.setChoiceMode(ListView.CHOICE_MODE_NONE);
清除选项(这不会影响可见项目,只需清除ListView
内部选项列表)
mListView.clearChoices();
最后,遍历可见项并更改它们:
for (int i = 0; i < mListView.getChildCount(); i++) {
View c = mListView.getChildAt(i);
//--below code is for un-checking,
//--you can do something else,
//--like altering the background
if (c instanceof Checkable) {
((Checkable) c).setChecked(false);
}
}
答案 1 :(得分:0)
尝试使用此代码#e7e8e9,在我的手机上试用它并且效果很好