在Android应用程序中,我有一个GridView,它持有由适配器创建的TextView。在那些TextView中,我添加了一个图标,它有三种状态(按下,选中和默认)。
我用android:listSelector="#00000000"
删除了GridView的默认选择器,我希望显示图标的选定状态。但是,虽然按下状态有效(即按下TextView时,显示图标的按下版本),但是选择的状态不会。
我尝试过这些技巧(在网络上的不同位置找到),但它也不起作用:
设置
android:descendantFocusability="afterDescendants"
和
android:drawSelectorOnTop="true"
或(在TextViews中)
android:duplicateParentState="true" />
如果我将TextView设置为可聚焦,它会独立于GridView获得焦点(即,点击它不会调用GridView onClick方法......)
图标在xml文件中定义,如下所示:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/ic_flag_bg_pressed"/>
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/ic_flag_bg_pressed"/>
<item android:state_focused="true"
android:drawable="@drawable/ic_flag_bg_selected"/>
<item android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/ic_flag_bg_default"/>
</selector>
有没有办法告诉GridView将焦点状态传递给其子节点?
答案 0 :(得分:0)
也坚持这一点。另一种看起来不错的方法是使用边框样式选择器并将其绘制在顶部。