Em um ExpandableListView
, existe uma maneira de ocultar o indicador de grupo para grupos sem filhos?
108
Em um ExpandableListView
, existe uma maneira de ocultar o indicador de grupo para grupos sem filhos?
Respostas:
Experimente >>>
para todos os itens
Em xml
fonte
o
android:groupIndicator
propriedade tem um drawable habilitado para o estado. Ou seja, você pode definir imagens diferentes para estados diferentes.Quando o grupo não tem filhos, o estado correspondente é 'state_empty'
Veja estes links de referência:
isso e isso
Para
state_empty
, você pode definir uma imagem diferente que não seja confusa, ou simplesmente usar a cor transparente para não exibir nada ...Adicione este item em seu drawable com monitoração de estado junto com outros ....
Então, sua lista de estatísticas pode ser assim:
Caso você esteja usando uma ExpandableListActivity, você pode definir o groupindicator em onCreate da seguinte maneira:
Eu testei isso para funcionar.
fonte
Com base na resposta de StrayPointer e no código do blog, você pode simplificar ainda mais o código:
Em seu xml, adicione o seguinte a ExpandableListView:
Em seguida, no Adaptador, você faz o seguinte:
Usando o método setImageResource, você faz tudo com uma linha. Você não precisa dos três arrays Integer em seu adaptador. Você também não precisa de um seletor XML para estado expandido e recolhido. Tudo é feito via Java.
Além disso, essa abordagem também exibe o indicador correto quando um grupo é expandido por padrão, o que não funciona com o código do blog.
fonte
getGroupView()
método de suaBaseExpandableListAdapter
implementação. Dê uma olhada neste exemplo de implementação .ViewHolder
padrão.indicator
é o nome da variável do titular da visualização.Conforme mencionado em uma resposta diferente, como o Android trata um grupo de lista não expandida como vazio, o ícone não é desenhado mesmo se o grupo tiver filhos.
Este link resolveu o problema para mim: http://mylifewithandroid.blogspot.com/2011/06/hiding-group-indicator-for-empty-groups.html
Basicamente, você deve definir o drawable como transparente, mover o drawable para a visualização de grupo como ImageView e alternar a imagem em seu adaptador.
fonte
Em seu código apenas use o xml customizado para lista de grupos e nele coloque o ImageView para GroupIndicator .
E adicione as matrizes abaixo em seu ExpandableListAdapter
também no método ExpandableListAdapter, adicione as mesmas coisas que abaixo
Referência: http://mylifewithandroid.blogspot.in/2011/06/hiding-group-indicator-for-empty-groups.html
fonte
Em XML
Em
ExpandableListAdapter
->getGroupView
copiar o seguinte códigofonte
isso poderia ser outra forma de XML, definir
android:groupIndicator="@null"
Link de referência: https://stackoverflow.com/a/5853520/2624806
fonte
sugiro minha solução:
1) Limpar groupIndicator padrão:
2) em ExpandableAdapter:
fonte
Só queria melhorar a resposta de Mihir Trivedi. Você pode colocá-lo em getGroupView () que está dentro da classe MyExpandableListAdapter
... e quanto à visualização do layout, é assim que meu group_items.xml parece ser
Espero que ajude ... lembre-se de deixar um voto positivo
fonte
Use isso está funcionando perfeitamente para mim.
fonte
Você já tentou alterar
ExpandableListView
o atributo deandroid:groupIndicator="@null"
?fonte
Simplesmente, você cria um novo layout xml com altura = 0 para o cabeçalho do grupo oculto. Por exemplo, é 'group_list_item_empty.xml'
Então, o layout normal do cabeçalho do grupo é 'your_group_list_item_file.xml'
Por fim, basta atualizar o método getGroupView em sua classe de adaptador:
IMPORTANTE : A tag raiz dos arquivos de layout (oculto e normal) deve ser diferente (como exemplo acima, LinearLayout e RelativeLayout)
fonte
convertView.setVisibility (View.GONE) deve fazer o truque.
fonte