Gostaria de alterar a cor azul abaixo do texto de edição, não sei que propriedade é.
Tentei usar uma cor de fundo diferente para ele, mas não funcionou.
Anexei uma imagem abaixo:
Gostaria de alterar a cor azul abaixo do texto de edição, não sei que propriedade é.
Tentei usar uma cor de fundo diferente para ele, mas não funcionou.
Anexei uma imagem abaixo:
Respostas:
Na verdade, é bastante fácil definir a cor de sublinhado de um EditText programaticamente (apenas uma linha de código).
Para definir a cor:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
Para remover a cor:
editText.getBackground().clearColorFilter();
Nota: quando o EditText tem foco , a cor que você definir não terá efeito, em vez disso, ela tem uma cor de foco.
Referência API:
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
Renderer
você substitui? Estou tentando descobrir como fazer isso funcionar para uma barra de pesquisa.
SearchBarRenderer
não seja do tipo EditText
. Não consigo fazer funcionar.
Use android:backgroundTint=""
em seu EditText
layout xml.
Para api <21, você pode usar AppCompatEditText
da biblioteca de suporte, entãoapp:backgroundTint=""
android:background="@null"
para dispositivos com api <21.
Você deve usar uma imagem de fundo diferente, não uma cor, para cada estado do EditText
(foco, habilitado, ativado).
http://android-holo-colors.com/
No site acima, você pode obter imagens de vários componentes do tema Holo. Basta selecionar "EditText" e a cor desejada. Você pode ver uma prévia na parte inferior da página.
Baixe o arquivo .zip e copie e cole os recursos do seu projeto (imagens e XML).
se o seu XML for denominado: apptheme_edit_text_holo_light.xml (ou algo semelhante):
Vá para seu XML "styles.xml" e adicione o EditText
estilo personalizado :
<style name="EditTextCustomHolo" parent="android:Widget.EditText">
<item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
<item name="android:textColor">#ffffff</item>
</style>
Basta fazer isso em seu EditText
:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/EditTextCustomHolo"/>
E é isso, espero que te ajude.
Isso funciona bem para versões antigas e novas do Android (funciona bem até mesmo na API 10!).
Defina este estilo em styles.xml
:
<style name="EditText.Login" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="colorAccent">@color/blue</item>
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlActivated">@color/blue</item>
</style>
E agora em seu XML, defina isso como tema e estilo ( estilo para definir textColor
e tema para definir todas as outras coisas):
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
style="@style/EditText.Login"
android:theme="@style/EditText.Login"/>
Esta solução causa uma pequena falha na IU em versões mais recentes do Android (Lollipop ou Marshmallow em diante) que as alças de seleção são sublinhadas.
Este assunto é discutido neste tópico . (Eu não tentei essa solução pessoalmente)
você pode alterar a cor de Sublinhado de EditText especificando-a em styles.xml . No seu app theme.xml, adicione o seguinte.
<item name="android:textColorSecondary">@color/primary_text_color</item>
Conforme apontado por ana na seção de comentários
<item name="android:colorControlActivated">@color/black</item>
definir isso no estilo do tema funciona bem para alterar a cor de um sublinhado de texto de edição.
android:textColorSecondary
é usado para determinar a cor da seta para trás e do DrawerLayout
ícone de hambúrguer na ActionBar.
<item name="colorControlNormal">@color/edittext_underline_color</item>
vez de textColorSecondary por causa do problema de coloração da barra de navegação.
Portanto, você precisa criar um novo arquivo .xml em sua pasta drawable.
Nesse arquivo, cole este código:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="8dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/white"/>
</shape>
</item>
</layer-list>
E em seu EditText, defina
android:background="@drawable/your_drawable"
Você pode brincar com seu xml drawable, definir cantos, preenchimentos, etc.
No estilo do seu aplicativo, defina a propriedade colorAccent . Aqui você encontra um exemplo
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/action_bar</item>
</style>
Você pode alterar a cor de EditText programaticamente apenas usando esta linha de código facilmente:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
Use o código abaixo para alterar a cor de fundo da borda do texto de edição.
Crie um novo arquivo XML em drawable.
abc.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00000000" />
<stroke android:width="1dip" android:color="#ffffff" />
</shape>
e adicione-o como fundo de seu texto de edição
android:background="@drawable/abc"
Para alterar a cor da linha de fundo, você pode usar isso no tema do seu aplicativo:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#ffe100</item>
<item name="colorControlHighlight">#ffe100</item>
</style>
Para alterar a cor do rótulo flutuante, escreva o seguinte tema:
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>
e use este tema em seu layout:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<EditText
android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:capitalize="characters"
android:hint="User Name"
android:imeOptions="actionNext"
android:inputType="text"
android:singleLine="true"
android:textColor="@android:color/white" />
</android.support.design.widget.TextInputLayout>
Você pode fazer isso com AppCompatEditText e seletor de cores:
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="@color/selector_edittext_underline" />
selector_edittext_underline.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/focused_color"
android:state_focused="true" />
<item android:color="@color/hint_color" />
</selector>
Se você não precisa oferecer suporte a dispositivos com API <21, use backgroundHint em xml, por exemplo:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Task Name"
android:ems="10"
android:id="@+id/task_name"
android:layout_marginBottom="15dp"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textColorLink="@color/blue"
android:textColorHint="@color/blue"
android:backgroundTint="@color/lighter_blue" />
Para melhor suporte e fallbacks, use a solução @Akariuz. backgroundHint é a solução mais indolor, mas não compatível com versões anteriores, com base em seus requisitos, faça uma chamada.
Basta alterar android: backgroundTint no código xml para a sua cor