自定义ListView:分隔符条目忽略设置

时间:2011-08-26 11:41:31

标签: android listview custom-controls list-separator

我创建了一个带分隔符的自定义ListView(使用this教程)。它外观和工作正常,但分隔符仍然可点击,可聚焦,并能够获得一个调用的上下文菜单。所以我试图“闭嘴”:

...
case TYPE_SEPARATOR:
    convertView.setFocusable(false);
    convertView.setClickable(false);
    convertView.setLongClickable(false);
    break;
        }

return convertView;

但他们完全忽略了这些设置!出于测试目的,我使用covertView.setBackground(Color.MAGENTA)并且效果很好。任何人都知道可能出错了什么?

1 个答案:

答案 0 :(得分:0)

假设您的适配器是实现BaseAdapter的适配器(例如ArrayAdapter),请覆盖适配器中的isEnabled()方法。

@Override
public boolean isEnabled(int position) {
    if (getItemViewType(postion) == TYPE_SEPARATOR) {  // method taken from example
        return false;
    }
    return super.isEnabled(position);
}

要跟踪哪些项目是分隔符以及哪些项目不是,请保留一个ArrayList或其他类型的集合来跟踪。