Com referência ao novo TextInputLayout
lançamento do Google, como altero a cor do texto da etiqueta flutuante?
Definindo colorControlNormal
, colorControlActivated
, colorControlHighLight
em estilos não ajuda.
Isto é o que eu tenho agora:
Com referência ao novo TextInputLayout
lançamento do Google, como altero a cor do texto da etiqueta flutuante?
Definindo colorControlNormal
, colorControlActivated
, colorControlHighLight
em estilos não ajuda.
Isto é o que eu tenho agora:
colorAccent
? Mudei o estilo personalizadocolorAccent
para preto e a linha ainda refletia o que tenhocolorControlNormal
no estilo principal.Respostas:
Experimente o código abaixo Funciona no estado normal
Na pasta Estilos, código TextLabel
Definido para o tema principal do aplicativo, ele funciona apenas Apenas estado de destaque
Atualizar:
Solução
fonte
android.view.InflateException: Error inflating class TextView
android:theme
estiloTextInputLayout
resulta emInflateException
falhas nos Zenphones ASUS (e possivelmente em outros dispositivos).ThemeOverlay.AppCompat.Light
ajudaram a resolver bater no meu ASUS Zenphone (@friederbluemle)fonte
android:textColorHint="@color/gray" //support 23.0.0
fiz a minha dica cor do texto visível (a cor do texto dica era preto por padrão, independentemente do conjunto de texto dica de cor I e se o fundo é preto o texto é completley escondidoEncontrei a resposta, use o
android.support.design:hintTextAppearance
atributo para definir sua própria aparência de rótulo flutuante.Exemplo:
fonte
Namespace 'android.support.design' not bound
. Alguma sugestão?compile 'com.android.support:design:23.1.1'
ao seu arquivo Gradle aplicativoVocê não precisa
android:theme="@style/TextInputLayoutTheme"
alterar a cor da etiqueta flutuante, pois isso afetará todo o tema do pequeno TextView usado como etiqueta. Em vez disso, você pode usarapp:hintTextAppearance="@style/TextInputLayout.HintText"
onde:Deixe-me saber se a solução funciona :-)
fonte
Com a biblioteca Material Components, você pode personalizar a
TextInputLayout
cor do texto da dica usando (requer a versão 1.1.0)No layout:
app:hintTextColor
atributo: a cor do rótulo quando ele é recolhido e o campo de texto está ativoandroid:textColorHint
atributo: a cor do rótulo em todos os outros estados do campo de texto (como em repouso e desativado)Widget.MaterialComponents.TextInputLayout.*
:O seletor padrão para
android:textColorHint
é:fonte
Ok, achei esta resposta muito útil e obrigado a todas as pessoas que contribuíram. Apenas para adicionar algo, no entanto. A resposta aceita é realmente a resposta correta ... MAS ... no meu caso, eu estava procurando implementar a mensagem de erro abaixo do
EditText
widgetapp:errorEnabled="true"
e essa linha única dificultava minha vida. parece que isso substitui o tema escolhidoandroid.support.design.widget.TextInputLayout
, que possui uma cor de texto diferente definida porandroid:textColorPrimary
.No final, comecei a aplicar uma cor de texto diretamente ao
EditText
widget. Meu código é algo como isto:styles.xml
E meu widget:
Agora ele exibe a cor do texto em preto em vez do
textColorPrimary
branco.fonte
Sugiro que você crie um tema de estilo para TextInputLayout e altere apenas a cor de destaque. Defina pai como seu tema básico do aplicativo:
fonte
Na versão mais recente da biblioteca de suporte (23.0.0+), utiliza
TextInputLayout
o seguinte atributo em XML para editar a cor do rótulo flutuante:android:textColorHint="@color/white"
fonte
Em vez da resposta de Brahmam Yamani, prefiro usar o Widget.Design.TextInputLayout como pai. Isso garante que todos os itens necessários estejam presentes, mesmo que nem todos os itens sejam substituídos. Na resposta da Yamanis, o aplicativo trava com um recurso não resolvível, se setErrorEnabled (true) for chamado.
Simplesmente mude o estilo para o seguinte:
fonte
No meu caso, adicionei isso "
app:hintTextAppearance="@color/colorPrimaryDark"
no meu widget TextInputLayout.fonte
error: '#FFFFFF' is incompatible with attribute hintTextAppearance
Para alterar a cor da dica e editar a cor do sublinhado do texto: colorControlActivated
Para alterar a cor do contador de caracteres: textColorSecondary
Para alterar a cor da mensagem de erro: colorControlNormal
Para alterar a tonalidade do botão de visibilidade da senha: colorForeground
Para obter mais informações sobre o TextInputLayout, leia http://www.zoftino.com/android-textinputlayout-tutorial
fonte
Programaticamente, você pode usar:
Explicação:
Obtenha o valor da cor int a partir de um recurso de cores (uma maneira de apresentar as cores RGB usadas pelo Android). Eu escrevi ColorEnabled, mas realmente deveria ser, para esta resposta, ColorHintExpanded & ColorViewCollapsed. De qualquer forma, essa é a cor que você verá quando a dica de uma exibição "TextInputLayout" estiver no estado Expandido ou Recolhido; você o definirá usando a próxima matriz na função "setDefaultHintTextColor" da exibição. Referência: Referência para TextInputLayout - procure nesta página o método "setDefaultHintTextColor" para obter mais informações
Observando os documentos acima, você pode ver que as funções definem as cores da dica Expandida e Reduzida usando um ColorStateList.
Documentos do ColorStateList
Para criar o ColorStateList, primeiro criei uma matriz com os estados que eu quero, no meu caso state_enabled & state_disabled (cujos são, em TextInputLayout, é igual a Hint Expanded e Hint Collapsed apenas fazendo um teste]). Depois passo para o construtor do ColorStateList as matrizes com valores int dos recursos de cores, essas cores têm correspondências com a matriz de estados (cada elemento na matriz de cores corresponde à matriz respectiva na matriz de estados na mesma posição). Portanto, o primeiro elemento da matriz de cores será usado como cor para todos os estados da primeira matriz da matriz de estados (no nosso caso, a matriz possui apenas 1 elemento: estado habilitado = estado expandido da dica para TextInputLayut). As últimas coisas que os estados têm valores positivos / negativos e você tem apenas os valores positivos,
Espero que isso seja útil. Tchau, tenha uma boa codificação (:
fonte
você deve mudar sua cor aqui
fonte
Agora, basta usar
colorAccent
ecolorPrimary
funcionará perfeitamente.fonte
colorPrimary
o tema para definir a cor focalizada da dica e da linha de fundo. Embora realmente devesse ter havido alguma explicação / código para mostrá-lo nesta respostaEu resolvo o problema. Este é o layout:
Este é o estilo:
Você deve usar seu tema no aplicativo:
fonte
para mudar a cor do rótulo do texto quando você estiver focando nele. ou seja, digitando nele. você tem que adicionar especificar
Apenas uma observação: você precisa adicionar todas essas implementações ao seu tema principal.
fonte
Está funcionando para mim ..... adicione cor de dica em TextInputLayout
fonte
Eu tentei usar android: textColorHint no android.support.design.widget.TextInputLayout funciona bem.
fonte
adicione isso aos estilos e defina o TextInputLayout Theam como App2 e ele funcionará;)
fonte
res / valores / styles.xml
fonte
Pode usar
app:hintTextColor
se você usarcom.google.android.material.textfield.TextInputLayout
, tente issofonte
Experimente o código abaixo Funciona no estado normal
Na pasta Estilos, código TextLabel
fonte
A partir da documentação:
Então eu definir
android:hint
eapp:hintTextColor
sobreTextInputLayout
, e não sobreTextInputEditText
e funcionou.fonte
Porque você deve adicionar
colorControlNormal
,colorControlActivated
,colorControlHighLight
itens para o tema principal da aplicação:fonte