Desejo desativar o destaque laranja que ocorre ao tocar em uma linha listView. Até agora, no meu xml, tentei o seguinte:
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
Mais informações: Desejo que não haja diferença zero quando um usuário tocar na tela neste objeto listView.
android
android-listview
highlighting
John Moffitt
fonte
fonte
Fragment
para a lista. O layout XML contém umLinearLayout
e váriosTextView
itens. Onde devo desativar o destaque da linha, por favor?listView.setSelector(android.R.color.transparent);
A resposta de RoflcoptrException deve funcionar, mas, por algum motivo, não funcionou para mim. Portanto, estou postando a solução que funcionou para mim, espero que ajude alguém.
fonte
O efeito de destaque laranja é um estilo no ListView. Este artigo fornece uma boa visão geral de como substituir o estilo listView.
Essencialmente, você tem um seletor que especifica diferentes elementos de estilo com base no estado atual.
veja isso para uma solução curta e rápida https://stackoverflow.com/a/12242564/185022
fonte
listSelector
deveria ser.No ListView: desative o destaque de foco ,
quando você define seu
ListAdapter
uso, o código a seguirIsso substituirá a
BaseAdapter
classe. Também cancela a borda branca entre as células.fonte
isEnabled
um item não é a maneira de desativá-lo! A documentação diz queisEnabled
é suposto determinar se um item é um separador.adicione isso também ao seu XMl junto com o listselector .. espero que funcione
fonte
Se você estiver usando
ArrayAdapter
ouBaseAdapter
para preencher os itens da lista.Override
oisEnabled
método e retornofalse
.fonte
Depois de alguns 'google'ing e testes em dispositivos virtuais e reais, percebo que meu código abaixo funciona:
observe que eu omiti a
areAllItemsEnabled()
parte.fonte
Nada me ajuda, mas isso:
transparent_drawable.xml
:layout.xml
:fonte
em código
e adicione pequena imagem transparente à pasta drawable.
Como: transparent.xml
fonte
Para mim
android:focusableInTouchMode="true"
é o caminho a percorrer.android:listSelector="@android:color/transparent"
é inútil. Observe que estou usando uma exibição de lista personalizada com vários objetos em cada linha.fonte
Você só precisa adicionar:
android:cacheColorHint="@android:color/transparent"
fonte
Como uma alternativa:
ou
fonte
Existe uma maneira rápida e fácil de fazer isso: No método:
Espero que ajude;)
fonte
Se você deseja desativar o realce para um único item de exibição de lista, mas mantenha a célula ativada, defina a cor de plano de fundo para essa célula para desativar o realce.
Por exemplo, no layout da sua célula, defina
android:background="@color/white"
fonte
você pode obter o
pos
que obtém doonItemClick
e fazer:essa é a melhor maneira que eu conheço
fonte