我想要达到的目标:
- 当用户按下列表项时,它会突出显示
- 当用户停止按下它时,列表项:
- 如果在按下之前未选中,则保持突出显示
- 失去高亮,如果它在按下之前被选中
- 长按的行为与用户停止按下的行为相同(根据项目的先前状态更改项目的背景)
- 滚动列表,而不按任何特定项目,不应突出显示任何项目
细节:
- 对于我阅读的内容,我认为可以使用列表选择器和状态android:state_activated来实现该行为,但是这种状态是在 API 级别 11 中引入的。我正在寻找的解决方案必须在 API 级别 10 中工作
- 我认为依赖单击(onItemClick,onClick...)的解决方案将不起作用,因为单击是在用户停止按下后触发的,而不是在他启动它时触发(就像按下状态一样)。使用android:state_pressed更改项目的突出显示不是持久的(它会在按下完成后变回)并在android:state_pressed中更改它并使其在单击时保持持久会产生闪烁
- 在 API 级别 10 中实现这一目标的应用程序的一个很好的例子是Tasks。只需单击或长按列表中的项目即可查看所需的行为
那么,有人已经解决了吗?关于 Tasks 应用程序如何做到这一点的任何想法?