我想禁用当触摸listView行时出现的橙色高亮。到目前为止,在我的xml我已经尝试了以下:

android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"

更多信息:我希望当用户在这个listView对象上触摸屏幕时,没有任何差异。


当前回答

把这个添加到你的xml中:

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

对于这个问题,这可能会起作用(我不确定,我不知道是否有更好的解决方案):

你可以应用一个ColorStateList到你的TextView。

其他回答

有一种快速简单的方法: 方法:

private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    //TODO
    ((ListView)sender).SelectedItem = null;
}

希望能有所帮助;)

如果使用ArrayAdapter或BaseAdapter填充列表项。重写isEnabled方法并返回false。

 @Override
  public boolean isEnabled (int position) {
    return false;
  }

橙色的高亮效果是ListView上的一个样式。本文很好地概述了如何重写listView样式。

从本质上讲,您有一个选择器,它根据当前状态指定不同的样式元素。

请看这个简短而快速的解决方案https://stackoverflow.com/a/12242564/185022

RoflcoptrException的答案应该做的把戏,但出于某种原因,它不为我工作,所以我张贴的解决方案,为我工作,希望它能帮助别人

<ListView 
android:listSelector="@android:color/transparent" 
android:cacheColorHint="@android:color/transparent"
/>

对于我android:focusableInTouchMode="true"是去的方式。android:listSelector="@android:color/transparent"没有用。注意,我使用的是一个自定义的列表视图,每行都有一些对象。