¿Cómo agregar atributos de varios temas a la misma actividad en el manifiesto de Android?

Tengo un manifiesto android con una actividad que quiero aplicar a los estilos a:

<activity android:label="@string/app_name" android:name="Language" android:theme="@android:style/Theme.NoTitleBar> 

Es cómo se ve ahora, pero al mantener el atributo NoTitleBar, me gustaría añadir este atributo también:

 android:style/Theme.Light" 

Pero soy tan nuevo en Android que no puedo entenderlo.

¡Por favor ayuda!

Usted no puede tener más de un tema aplicado al mismo tiempo en su manifiesto.

Creo que hay un tema Theme.Light.NoTitleBar que hará lo que quieras – pero voy a mostrar a continuación cómo se puede hacer esto fácilmente y personalizar más.

Lo que tienes que hacer es crear un tema que tiene Theme.NoTitleBar o Theme.Light como es padre y personaliza los bits que desea – en este caso la manera más fácil es crear un tema con Theme.Light como es padre y sólo Ocultar la barra de título (en lugar de tener la Theme.NoTitleBar como el padre y luego tienen que hacer que todo luz que es mucho más difícil!).

Puede hacer esto con el siguiente código en su archivo themes.xml en la carpeta values :

 <?xml version="1.0" encoding="utf-8"?> <resources> <!-- use the Android Light theme as the base for our own theme --> <style name="MySuperTheme" parent="@android:style/Theme.Light"> <!-- hide the Window Title --> <item name="android:windowNoTitle">true</item> <!-- You could change the scrollbar, checkbox style, anything! --> </style> </resources> 

A continuación, utilice android:theme="@style/MySuperTheme" para su actividad (o incluso podría aplicarla a toda la aplicación colocándola en el elemento de aplicación si aplica un estilo a una actividad individual y tiene un conjunto para la actividad Toda la aplicación, así como el estilo de la actividad individual será el que se muestra).

Echa un vistazo al tema de Android themes.xml para obtener una lista de todas las cosas que puedes personalizar en tu propio tema.

También puede ver todos los estilos de Android para ver cómo se hacen.

Necesitará al menos 2 estilos, la mejor herencia de los estilos de base, por ejemplo, las variantes de Theme.Material o, si utiliza appcompat , variantes Theme.AppCompat . En cada estilo reemplazan los valores como colores, dibujos, etc. con valores específicos del tema.

Values ​​/ styles.xml

 <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- original theme attributes --> ... <item name="android:textColorPrimary">#FFFFFF</item> </style> <style name="AppTheme.Dark" parent="Theme.AppCompat"> <!-- alternative theme attributes --> ... <item name="android:textColorPrimary">#000000</item> </style> 

Esto será suficiente si sólo utiliza atributos de framework o appcompat (por ejemplo, colorAccent , android:textColorPrimary etc.) en sus diseños. Pero si usted necesita sus propios atributos (por ejemplo, un dibujable con color que es diferente por tema), entonces tendrá que definir los atributos personalizados .

Valores / attrs.xml

 <attr name="themedMenuStoryDrawable" format="reference" /> <attr name="themedMenuCommentDrawable" format="reference" /> ... 

Especifique los valores específicos del tema para sus atributos personalizados:

Values ​​/ styles.xml

 <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- original theme attributes --> ... <item name="themedMenuStoryDrawable">@drawable/ic_subject_white_24dp</item> <item name="themedMenuCommentDrawable">@drawable/ic_mode_comment_white_24dp</item> </style> <style name="AppTheme.Dark" parent="Theme.AppCompat"> <!-- alternative theme attributes --> ... <item name="themedMenuStoryDrawable">@drawable/ic_subject_black_24dp</item> <item name="themedMenuCommentDrawable">@drawable/ic_mode_comment_black_24dp</item> </style> 

A continuación, consulte sus atributos personalizados con ?attr/ prefijo en diseños, menús, etc:

Menu / my_menu.xml

 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@id/menu_comment" android:icon="?attr/themedMenuCommentDrawable" /> <item android:id="@id/menu_story" android:icon="?attr/themedMenuStoryDrawable" /> </menu> 

Echa un vistazo a mi blog para obtener la guía completa.

  • Tema Programáticamente establecido. Cómo volver a cargar Actividad para aplicar
  • Android Custom Theming en ActionBar / Tabs
  • Cuerdas Android dependientes del tema
  • Lollipop estilo EditBox
  • Barra de acción de Android barra divisora ​​de barras
  • Uso del adaptador ListView personalizado con los temas predeterminados de Android
  • Icono de aplicación no aparece en Actionbar (Android Studio 1.0.1)
  • Estilo de la casilla de verificación de Android
  • App: el tema ya está obsoleto. Pase por usar android: tema en su lugar
  • AlertDialog Tema: ¿Cómo cambiar el color del texto del artículo?
  • Estilo ICS en aplicaciones Froyo y Gingerbread
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.