我想创建一个无法滚动的ListView,我从讨论here和here中找到了大量帮助。如果我理解正确,那就是忽略所有MotionEvent.ACTION_MOVE事件。
这很有效,我唯一的问题是,ListView中的对象会根据状态更改背景。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_selected" android:state_pressed="true" />
<item android:drawable="@drawable/button_selected" android:state_focused="true" />
</selector>
现在有一种情况,用户想要按ListView中的项目,但随后改变主意并将手指移出视图。他按下的项目仍然保持选中状态。我在处理Move事件时尝试清除它们的按下状态,但我想我还必须考虑其他事情。
if (actionMasked == MotionEvent.ACTION_MOVE) {
setPressed(false);
return true;
}
答案 0 :(得分:0)
您可以在xml中使用listViewItems.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
或在ListView中设置android:choiceMode="singleChoice"
。