我有一个listView,当用户选择一个项目时,我会重新显示正确的答案。但是,此时我想禁用列表视图项的选择;用户只能通过按钮进入下一个问题。但是,即使我禁用了这样的项目:
private void disableItemSelection() {
ListView lv = getListView();
for (int i = 0; i < lv.getChildCount(); i++){
View v = lv.getChildAt(i);
v.setEnabled(false);
}
}
...当用户选择时,它仍会突出显示选择。有什么想法吗?
答案 0 :(得分:32)
滚动被锁定的原因是因为您正在设置
ListView
我找到了一种在不锁定滚动条的情况下禁用突出显示的方法。您需要在ListAdapter中进行设置,如下所示:
ArrayAdapter<String> myList = new ArrayAdapter<String>(this, R.layout.list_item, strText) {
public boolean isEnabled(int position)
{
return false;
}
};
答案 1 :(得分:23)
您可以向Listview XML布局添加属性以禁用多个高亮行
android:listSelector="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
答案 2 :(得分:2)
我只是用这个隐藏了所选项目:
listView.setSelector(new ColorDrawable(0));
然后再通过恢复之前使用的任何绘图来再次显示它:
wifiSsid.setSelector(R.drawable.listview_selector);
答案 3 :(得分:2)
我使用了android:choiceMode="none"
作为记录here。