设置禁用listview项目的背景

时间:2015-06-29 14:18:17

标签: android listview android-listview

我正在编写一个使用Listview(带有自定义适配器)的程序,我想禁用listview中的一些项目。我这样做是通过使用这个代码(到目前为止很好):

@Override
    public boolean isEnabled(int position) {
        if ((position == 2 || position == 3) && mBool1) {
            return false;
        }
        return true;
    }

然而,这并没有提供任何视觉提示......只是在你设置了布尔mBool1之后,你不能点击位置2和3的列表项,但背景仍然是相同。如何将已禁用列表视图项的背景颜色更改为与已启用的项不同?我试图使用选择器,但我无法找到合适的组合。

1 个答案:

答案 0 :(得分:4)

它不应该。所有可视状态都在getView(或bindView中进行过滤,具体取决于您使用的适配器类型)。所以你应该做一些像:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // Get the view
    if(isEnabled(position)) {
        view.setBackground(...);
    } else {
        view.setBackground(...);
    }
}