Q1)查看ListView
可绘制的原始状态,因为listSelector
我们有这样的东西(我剥离了一些代码以简化示例):
<selector>
<item android:drawable="<TRANSPARENT>" android:state_window_focused="false"/>
<item android:drawable="<DRAWABLE_1>" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="<DRAWABLE_1>" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="<DRAWABLE_2>" android:state_focused="true"/>
</selector>
但我一直在我的应用程序上这样做:
<selector>
<item android:drawable="<DRAWABLE_2>" android:state_pressed="false" android:state_focused="true"/>
<item android:drawable="<DRAWABLE_1>" android:state_pressed="true"/>
<item android:drawable="<TRANSPARENT>" />
</selector>
这似乎产生了相同的结果,而且更简单。您是否注意到第一个比我自己的版本更好的情况?我只是想确保我没有遗漏一些重要的东西,因为我喜欢让我的代码尽可能短......
Q2)我看到许多状态drawables<item android:drawable="<TRANSPARENT>" android:state_window_focused="false"/>
作为最重要的项目,但我不明白为什么需要它。总是让state_window_focused
我有点困惑……真的有必要吗?