Android CAB ListView背景切换问题

时间:2012-12-10 16:33:34

标签: android select android-actionbar cab

我正在尝试将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"));
    }
}

2 个答案:

答案 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,在我的手机上试用它并且效果很好

在此处找到:Holo light color code of Navigation drawer