【问题标题】:GridView children don't display focusGridView 子项不显示焦点
【发布时间】:2011-05-10 11:56:09
【问题描述】:

在一个 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 将焦点状态传递给它的孩子?

【问题讨论】:

    标签: android gridview focus


    【解决方案1】:

    也陷入了困境。另一种看起来不错的方法是使用边框样式选择器并将其绘制在顶部。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多