vegano recetas buddha bowls bowl almuerzo android android-gradle android-theme

android - buddha - recetas de bowls almuerzo



Sabores de Android con diferentes temas básicos (2)

Tengo un proyecto de Android con múltiples sabores en los que estoy trabajando.

Esto funciona bien y puedo personalizar elementos de la aplicación como colores y recursos de cadena.

Quiero hacerlo para que algunos de los sabores se basen en el tema ligero de AppCompat y algunos en el tema oscuro de AppCompat.

Sé que podría hacer esto repitiendo todos los <items> en mi estilo y en cada configuración de sabor el tema para apuntar a cada uno en un manifiesto personalizado para cada aplicación, pero eso parece excesivo.

¿Hay alguna manera fácil de configurar un tema como tal?

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">@color/primary_colour_tone1</item> ...lots more settings </style>

Pero, en lugar de apuntar directamente a Theme.AppCompat.NoActionBar, apunte a una referencia que en cada compilación de gradle se puede establecer de forma diferente.

Entonces algo así como:

<style name="AppTheme" parent="**Theme reference here**"> <item name="colorPrimary">@color/primary_colour_tone1</item> ...lots more settings </style>

He intentado usar cosas como @ string / theme_name, pero eso no funciona, ¿hay una manera simple de hacer esto?


Puede definir los sourceSets para recursos comunes (también fuentes) para uno o más sabores, lo que significa que no tiene que repetir todos los recursos para todos los sabores.

Por ejemplo, tienes 3 sabores. flavor1 y flavor2 usa el mismo tema pero flavor3 . Luego puede definir un conjunto de fuentes adicionales para recursos comunes, como commonA (para flavor1, flavor2) y commonB (para flavor3):

... android { ... productFlavors { flavor1{ } flavor2{ } flavor3{ } } sourceSets.flavor1{ res.srcDirs = [''res'', ''src/commonA/res''] } sourceSets.flavor2{ res.srcDirs = [''res'', ''src/commonA/res''] } sourceSets.flavor3{ res.srcDirs = [''res'', ''src/commonB/res''] } }

También debe crear las carpetas src/commanA y src/commonB luego poner sus recursos comunes en sus carpetas de res .


una mejor forma de crear un estilo base, que contenga los valores predeterminados, luego en el estilo de fuente principal y ahora amplíe el estilo (pero probablemente no haga nada). En el sabor, puede extenderlo y anular lo que necesita.