/ / Filhos do GridView não exibem foco - android, gridview, focus

Crianças GridView não exibem o foco - android, gridview, foco

Em um aplicativo Android, tenho um GridView segurandoTextView criado por um adaptador. Nesses TextView, adiciono um ícone que possui três estados (pressionado, selecionado e padrão). Eu removi o seletor padrão do GridView com android:listSelector="#00000000" e eu gostaria do estado selecionado do íconepara exibir. Porém, embora o estado pressionado funcione (ou seja, quando o TextView é pressionado, a versão pressionada dos ícones é mostrada), o selecionado não "t.

Eu tentei esses truques (encontrados em diferentes lugares da Web), mas também não funcionou:

  • configuração

    android:descendantFocusability="afterDescendants"
    
  • ou

    android:drawSelectorOnTop="true"
    
  • ou (nos TextViews)

    android:duplicateParentState="true" />
    

E se eu definir o TextView para ser focado, ele obtém o foco independentemente do GridView (ou seja, clicar nele não chama o método GridView onClick ...)

O ícone é definido em um arquivo xml como este:

<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>

Existe uma maneira de dizer ao GridView para passar o estado focado para seus filhos?

Respostas:

0 para resposta № 1

Também fiquei preso nisso. Uma abordagem alternativa que pode parecer boa é usar um seletor de estilo de borda e desenhá-lo no topo.