Android ListView如何清除所选内容
因此,我在列表视图上有一个选择器,其中每行有2个Android ListView如何清除所选内容,android,listview,android-listview,textview,selector,Android,Listview,Android Listview,Textview,Selector,因此,我在列表视图上有一个选择器,其中每行有2个文本视图,每个文本视图都有另一个选择器,与列表上的选择器同步(相同状态下的不同绘图选项:激活和按下)。我的逻辑是,当我在列表视图中检测到一个项目时,我会临时更改该视图的背景色,500毫秒后将其设置回透明 但是,当它重置时,有时子视图的按下状态设置为true,有时视图的bg不正确,但内部的文本视图始终对应于其激活的可绘图项,即使按下状态为false 我似乎不知道如何纠正这种行为。非常感谢您的帮助,这件事快把我逼疯了 我尝试过清除选项,但没有帮助,我甚
文本视图
,每个文本视图都有另一个选择器,与列表上的选择器同步(相同状态下的不同绘图选项:激活
和按下
)。我的逻辑是,当我在列表视图中检测到一个项目时,我会临时更改该视图的背景色,500毫秒后将其设置回透明
但是,当它重置时,有时子视图的按下状态设置为true,有时视图的bg不正确,但内部的文本视图始终对应于其激活的可绘图项
,即使按下状态为false
我似乎不知道如何纠正这种行为。非常感谢您的帮助,这件事快把我逼疯了
我尝试过清除选项,但没有帮助,我甚至尝试过显式强制子视图将其激活状态设置为false,并按下状态,这也不会起作用。我真的没有选择了。因此,在花了大量时间分析了AbsListView
中的幕后情况后,我找到了解决此问题的方法。首先,关于导致这种情况的问题,AbsListView
有8种运动检测状态,即-
触摸屏模式休息(-1)
触摸模式(0)
触摸模式轻触(1)
触摸模式完成等待(2)
触摸模式滚动(3)
触控模式(4)
触摸模式超视距(5)
触摸模式溢出(6)
当ACTION\u UP
事件被发送到列表视图时,其touchMode
不知何故卡在(2)和(5)之间,导致其在motionView(子视图)
上记住其按下的状态,这导致了不正确的结果,即即使在运动完成时按下的状态仍然可见
我无法弄清楚为什么会出现这个问题,因为我总是将事件从我的TouchListener
发送到ListView
无论如何,现在这类案件的解决办法是:
当我的手势检测器
识别出一个手势时,它将返回true,所以我所要做的就是当手势检测器
返回true时,只需将动作事件
的动作更改为动作
并将其发送到列表视图
中,问题就解决了。您是否尝试过列表视图.clearChoices();
?@Machado是的,这是我尝试的第一件事。你尝试在列表视图上发布更新吗?类似于getListView().post(new Runnable(){@Override public void run(){//do stuff here});@RamandeepNanda nope也不起作用,因为当活动恢复时,它会在子视图上再次绘制选择器(除非我滚动列表)