tema style studio programacion personalizar edittext controles cambiar apptheme aplicacion android

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>