如何使列表视图中的项目在Android中无法点击

时间:2011-09-12 15:06:59

标签: android listview

如何使列表视图中的项目无法单击。我在列表视图中获得了主题和项目,但主题和项目的视图相同。这些项目是可点击的,但主题无法点击。如何实现这个

列表看起来像

Topic
item
Topic
item
item

主题。点击能力(假)没有用,请帮忙

7 个答案:

答案 0 :(得分:72)

不知道你是否仍然需要它,但你可以实现自己的Adapter并覆盖方法isEnabled(int position)。根据项目的ViewType,您将返回true或false。

答案 1 :(得分:55)

分享我的经验,以下功能(视图指的是列表项视图):

view.setEnabled(false);
view.setOnClickListener(null);
  • 通过覆盖方法启用并不起作用,因为从未调用该方法。
  • 将焦点设置为false也不起作用。

答案 2 :(得分:20)

要使列表中的项目不可单击,您必须使适配器在其isEnabled方法中为列表中的项目返回false。实例化适配器和覆盖isEnabled的简单方法可以通过以下方式完成:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, null, from, to, 0) {
    @Override
    public boolean isEnabled(int position) {
        return false;
    }
};

答案 3 :(得分:8)

这是正确答案:

我发现很多评论说

setEnabled(false)
setClickable(false)
setFocusable(false)

可行,但答案是

此方法的唯一解决方法是:

view = inflater.inflate(R.layout.row_storage_divider, parent, false);
view.setOnClickListener(null);

答案 4 :(得分:4)

在ListView中将listSelector设置为透明

android:listSelector="@android:color/transparent"

答案 5 :(得分:1)

在你的适配器中,你有这个:

view = inflator.inflate(R.layout.items_menu_header, null);    
view.setOnClickListener(null);

我使用布尔值来标识标题或项目,因此我为每种类型指定了不同的布局。

答案 6 :(得分:1)

ListView添加以下属性

android:cacheColorHint = "#00000000"