O elemento SearchView não tem propriedades para alterar a cor do texto. A cor do texto padrão é preto e não funciona em nosso fundo escuro. Existe uma maneira de mudar a cor do texto sem recorrer a hacks?
Eu encontrei essa pergunta semelhante relacionada à mudança do tamanho do texto, mas até agora, ela não tem nenhuma resposta: Como definir o SearchView TextSize?
android
searchview
CACuzcatlan
fonte
fonte
Respostas:
Adicionar
para o tema pai e isso deve alterar o texto inserido. Você também pode usar
para alterar o texto da dica para o SearchView. (Observe que você pode substituir o
@android:color/white
por qualquer valor apropriado que você espera usar)fonte
EditText
s. A única solução que funcionou para mim que muda apenas aSearchView
cor do texto está aqui: stackoverflow.com/a/40550067/1617737Tente algo assim: Você obteria um identificador para a visualização de texto do SDK e, em seguida, mudaria, já que eles não o expõem publicamente.
fonte
Isso funciona para mim.
fonte
Eu queria fazer algo semelhante. Eu finalmente tive que encontrar
TextView
entre asSearchView
crianças:Se você quiser o método util:
fonte
Graças a @CzarMatt, adicionei o suporte para AndroidX .
Para mim, o seguinte funciona. Eu usei um código de um link: Alterar a cor do texto da dica de pesquisa na barra de ações usando a biblioteca de suporte .
Alterar a cor do texto da dica de pesquisa da barra de ação sugere outra solução. Funciona, mas define apenas o texto e a cor da sugestão.
fonte
androidx.appcompat.R.id.search_src_text
se você migrou seu projeto para AndroidX.Isso é melhor alcançado por meio de estilos personalizados. Sobrecarregue o estilo do widget da barra de ação com seu próprio estilo personalizado. Para holofote com barra de ação escura, coloque-o em seu próprio arquivo de estilos, como
res/values/styles_mytheme.xml
:Certifique-se de que seu aplicativo esteja usando um tema personalizado conforme descrito em insira a descrição do link aqui
fonte
Você pode fazer isso definindo o
editTextColor
atributo no estilo.e você aplica esse estilo
Toolbar
ouSearchView
no layout.fonte
se você usar - android.support.v7.widget.SearchView
em Kotlin
Você deve começar a usar bibliotecas de suporte androidx agora
fonte
Crie um estilo para o seu
Toolbar
E defini-lo como o tema para o
Toolbar
fonte
Se você estiver usando o android.support.v7.widget.SearchView, é possível sem precisar usar reflexão.
É assim que faço no meu aplicativo:
Eles não expõem os ids publicamente para o SearchView não compatível com app, mas o fazem para o AppCompat se você souber onde procurar. :)
fonte
Eu tive esse problema, e isso funciona para mim.
fonte
Se você basear o tema do seu aplicativo no tema holo, você obterá um texto branco em vez de preto em seu SearchView
<style name="Theme.MyTheme" parent="android:Theme.Holo">
Eu não encontrei nenhuma outra maneira de mudar a cor do texto do searchview sem usar hacks sujos.
fonte
A maneira mais limpa é:
A barra de ferramentas usa o tema ThemeOverlay.AppCompat.Dark.Actionbar.
Agora faça disso um filho como:
toolbarStyle pai "ThemeOverlay.AppCompat.Dark.Actionbar"
adicione este item naquele estilo
nome do item "android: editTextColor"> sua cor
Feito.
Mais uma coisa muito importante é, na barra de ferramentas coloque layout_height = "? Attr / actionbarSize". Por padrão, é wrap_content. Para mim, o texto nem era visível no searchview, ele corrigiu o problema.
fonte
Sim, é possível usando o seguinte método.
A chamada deste método se parece com isto ..
ao usá-lo, adicionei com êxito a marca de cor vermelha * na dica usando este método. Você deve alterar este método de acordo com sua necessidade. Espero que seja útil para você .... :)
fonte
SearchAutoComplete autoCompleteView = (SearchAutoComplete) mSearchView .findViewById(com.android.internal.R.id.search_src_text);autoCompleteView.setHintTextColor(R.color.hint_text_color);
essa é a minha solução, mas acho que a sua é melhor que a minha, usarei a sua solução, obrigado.Use este, é isso mesmo. : D
fonte
Sim, nós podemos,
Para aplicar a cor branca para o texto SerachView,
Boa codificação !!!!
fonte
isso está funcionando para mim.
fonte
Alterar a cor do texto digitado:
Alterar a cor do texto da dica:
fonte
fonte
Um
SearchView
objeto se estende deLinearLayout
, portanto, mantém outras visualizações. O truque é encontrar a exibição que contém o texto da dica e alterar a cor programaticamente. O problema de tentar encontrar a visualização por id é que o id depende do tema usado no aplicativo. Portanto, dependendo do tema usado, ofindViewById(int id)
método pode retornarnull
. Uma abordagem melhor que funciona com todos os temas é percorrer a hierarquia de visualização e encontrar o widget que contém o texto da dica:Usando esse método, você também pode alterar a aparência de outros widgets na
SearchView
hierarquia, comoEditText
manter a consulta de pesquisa. A menos que o Google decida alterar a hierarquia de visualização de um emSearchView
breve, você poderá alterar a aparência do widget com este método por algum tempo.fonte
É possível personalizar o searchview usando a biblioteca appcompat v7. Usei a biblioteca appcompat v7 e defini um estilo personalizado para ela. Na pasta drawable coloque o arquivo bottom_border.xml que se parece com isto:
Na pasta de valores styles_myactionbartheme.xml:
Eu defini o arquivo custommenu.xml para exibir o menu:
Sua atividade deve estender ActionBarActivity em vez de Activity. Aqui está o método onCreateOptionsMenu.
No arquivo de manifesto:
Para obter mais informações, consulte este url:
Aqui http://www.jayway.com/2014/06/02/android-theming-the-actionbar/
fonte
para appcompat-v7 Toolbar com searchView (fornecido por MenuItemCompat):
Definir o tema da barra de ferramentas como @ style / ThemeOverlay.AppCompat.Light resultará na cor escura (preto) para o texto de dica e para o texto inserido, mas não afetará a cor do cursor *. Da mesma forma, definir o tema da barra de ferramentas como @ style / ThemeOverlay.AppCompat.Dark produzirá uma cor clara (branco) para o texto de dica e o texto inserido, o cursor * será branco de qualquer maneira.
Personalização dos temas acima:
android: textColorPrimary -> cor do texto inserido
editTextColor -> cor do texto inserido (substituirá o efeito do android: textColorPrimary se definido)
android: textColorHint -> cor da dica
* nota: Ainda estou para determinar como a cor do Cursor pode ser controlada (sem usar a solução de reflexão).
fonte
Ao usar isso, fui capaz de alterar a cor do texto digitado na visualização de pesquisa
fonte
Uau. Muitas respostas. Ele obtém o valor da cor de sua cor primária.
Mude-o e pronto!
Estilos;
fonte
mude o estilo searchView na barra de ferramentas com o androidx.
em primeiro lugar, defina o estilo de visualização da pesquisa no estilo da barra de ferramentas (altere-os com seu próprio aplicativo com base neles):
em seguida, use-o no layout da barra de ferramentas:
com isso, você pode alterar a maior parte do estilo de searchView, exceto para dica de consulta.
finalmente defina a dica de consulta nas opções do menu da barra de ferramentas:
fonte
Estou usando a biblioteca Holoeverywhere. Observe o org.holoeverywhere.R.id.search_src_text
fonte
Eu encontrei uma solução em uma postagem no blog. Veja aqui .
Basicamente, você estiliza searchViewAutoCompleteTextView e faz com que android: actionBarWidgetTheme herde o estilo.
fonte
funciona comigo
fonte
O que funcionou para mim
fonte
Para a linguagem Kotlin
fonte