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

Jes*_*Jes 36 android listview

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

列表看起来像

Topic
item
Topic
item
item
Run Code Online (Sandbox Code Playgroud)

话题.点击能力(假)没有用,请帮忙

Fil*_*nik 72

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

  • 此方法阻止分隔线显示在我的列表项之间.相反,我在ListView的XML中设置了以下属性:android:listSelector ="@ android:color/transparent"`它对我有用. (3认同)

Ali*_*aka 54

分享我的经验,以下做了诀窍(视图指的是列表项视图):

view.setEnabled(false);
view.setOnClickListener(null);
Run Code Online (Sandbox Code Playgroud)
  • 通过重写方法启用不起作用,因为从未调用该方法.
  • 将焦点设置为false也不起作用.

  • 我的解决方案的问题是重新启用点击.一个你使点击监听器无效,你不知道ListView以前使用的是什么监听器.如果您想重新启用点击/选择选项,请参阅isEnabled解决方案:http://developer.android.com/reference/android/widget/BaseAdapter.html#isEnabled(int) (4认同)

Dan*_*son 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;
    }
};
Run Code Online (Sandbox Code Playgroud)


ces*_*rds 8

这是正确的答案:

我发现了很多评论

setEnabled(false)
setClickable(false)
setFocusable(false)
Run Code Online (Sandbox Code Playgroud)

会工作,但答案是否定的

这种方法的唯一解决方法是:

view = inflater.inflate(R.layout.row_storage_divider, parent, false);
view.setOnClickListener(null);
Run Code Online (Sandbox Code Playgroud)


小智 5

在 ListView 中设置 listSelector 透明

android:listSelector="@android:color/transparent"
Run Code Online (Sandbox Code Playgroud)