如何设置ListView不可点击

Tiz*_*ica 35 android clickable android-listview android-selector

我有这个ListView只需要显示数据.
所以我不想让它可点击.
首先,我尝试将XML listview更改为:

<ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:clickable="false" >
Run Code Online (Sandbox Code Playgroud)

但它没有用.
所以要解决我的问题,我通过代码设置:

  list.setSelector(android.R.color.transparent); 
Run Code Online (Sandbox Code Playgroud)

但我无法相信没有更好的解决方案.任何的想法?

g00*_*0dy 56

这是评论之后:

一种方法是: ListView.setOnClickListener(null);OR

您可以添加android:focusable="false" android:focusableInTouchMode="false"OR

布局中的另一种方式 android:listSelector="@android:color/transparent"

干杯.

  • list.setOnClickListener(null)每次都给我一个错误,但是list.setOnItemClickListener(null); 工作得很好. (6认同)
  • 只有最后一个解决方案适合我 (2认同)

Aru*_*n C 52

只需覆盖适配器中的isEnabled(position)并返回false

@Override
public boolean isEnabled(int position) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)


Sun*_*mar 12

覆盖以下方法.返回false表示所有项目都不可点击.

 @override
  public boolean areAllItemsEnabled() {
    return false;
  }
Run Code Online (Sandbox Code Playgroud)

并覆盖以下方法以返回哪个项目不可点击

public boolean isEnabled(int position) {
    if(position == your_item_pos) {
          return false;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)