android - style - Establecer un estilo consistente para todos EditText(por ejemplo)
personalizar edittext android (4)
Anule el atributo que apunta al estilo EditText
(llamado editTextStyle
:)) en su tema personalizado:
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="android:editTextStyle">@style/App_EditTextStyle</item>
</style>
y Widget.EditText
tu estilo personalizado para extender Widget.EditText
:
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
Estoy tratando de hacer que todos los EditText
en mi aplicación tengan un aspecto consistente. Soy consciente de que puedo hacer algo como esto:
<style name="App_EditTextStyle">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
Entonces puedo hacer que un EditText
particular tenga este estilo al hacer esto:
<EditText ...
style="@style/App_EditTextStyle
...>
Pero de esta forma tengo que acordarme de configurar el estilo de forma individual para cada EditText
en mi aplicación, que es tedioso, si no propenso a errores.
¿Hay alguna forma en que pueda hacer que esto sea parte de un tema o algo así? Esto es así, así que no tengo que asociar este estilo a cada EditText
. Algo así como este bloque de código ficticio:
<style name="App_Theme" parent="@android:style/Theme.Holo">
...
<item name="android:EditTextSyle">@style/App_EditTextStyle</item>
...
<style>
Y luego en mi AndroidManifest.xml
tengo algo como:
<application
....
android:theme="@style/App_Theme">
¡Y voilá! todos mis EditText
tienen el estilo consistente sin que tenga que especificar el estilo para cada instancia.
La respuesta de @Luksprog es correcta pero no funciona para mí. Después de un poco de experimentación, descubrí que eliminar el espacio de nombres de android de editTextStyle lo hizo funcionar para mí.
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="editTextStyle">@style/App_EditTextStyle</item>
</style>
y haga su estilo personalizado para extender Widget.EditText
o si usa el tema de Widget.AppCompat.EditText
:
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
Primero, defina el estilo para su EditText. Asegúrese de que el estilo principal sea android:Widget.EditText
<style name="CustomEditTextStyle" parent="android:Widget.EditText">
<item name="android:textColor">#0F0F0F</item>
<!-- ... More items here if needed ... -->
</style>
Después de eso, anula el atributo android:editTextStyle
en tu tema personalizado. Tenga en cuenta que, si está utilizando la biblioteca de soporte, también deberá anular el atributo editTextStyle
(sin el espacio de nombres de android).
<style name="App_Theme" parent="...">
<item name="android:editTextStyle">@style/CustomEditTextStyle</item>
<item name="editTextStyle">@style/CustomEditTextStyle</item> <!-- For compatibility with the support library -->
</style>
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="android:editTextBackground">@drawable/filled_roundededges_box_dark</item>
</style>