Comment ajouter plusieurs attributs de thème à la même activité sur Android Manifest?

J'ai un manifeste Android avec une activité que je souhaite postuler aux styles pour:

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

Est-ce que cela se passe maintenant, mais tout en conservant l'attribut NoTitleBar, j'aimerais également ajouter cet attribut:

  • Comment augmenter la taille de la police de l'élément spinner?
  • La méthode getoutputmediafileuri n'est pas accessible?
  • L'explorateur de fichiers DDMS ne peut pas accéder aux données \ data (HTC Desire HD)
  • Comment compiler un projet Android dans un fichier .apk dans Eclipse sans lancer l'émulateur?
  • Comment puis-je exécuter l'émulateur Android pour Intel x86 Atom sans accélération matérielle sur Windows 8 pour API 21 et 19?
  • Modification de l'action surcharger la couleur du texte dans ActionBar
  •  android:style/Theme.Light" 

    Mais je suis tellement nouveau sur Android que je ne peux pas comprendre.

    Aidez-nous!

    2 Solutions collect form web for “Comment ajouter plusieurs attributs de thème à la même activité sur Android Manifest?”

    Vous ne pouvez pas avoir plus d'un thème appliqué à la fois dans votre manifeste.

    Je crois qu'il existe un thème Theme.Light.NoTitleBar qui fera ce que vous voulez – mais je vais vous montrer ci-dessous comment vous pouvez facilement le faire vous-même et personnaliser davantage.

    Ce que vous devez faire, c'est créer un thème qui comporte Theme.NoTitleBar ou Theme.Light car il est parent et personnalise les bits que vous voulez – dans ce cas, la manière la plus simple est de créer un thème avec Theme.Light car il est parent et juste Masquer la barre de titre (plutôt que de Theme.NoTitleBar tant que parent et ensuite faire tout ce qui est beaucoup plus difficile!).

    Vous pouvez le faire avec le code suivant dans votre fichier themes.xml dans le dossier des 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> 

    Ensuite, utilisez android:theme="@style/MySuperTheme" pour votre activité (ou vous pourriez même l'appliquer à toute votre application en la plaçant sur l'élément de l'application – si vous appliquez un style à une activité individuelle et avez un ensemble pour Toute l'application ainsi que le style de l'activité individuelle sera celui montré).

    Jetez un oeil à l'Android themes.xml pour une liste de toutes les choses que vous pouvez personnaliser dans votre propre thème.

    Vous pouvez également regarder tous les styles Android pour voir comment ils sont terminés.

    Vous aurez besoin d'au moins 2 styles, le meilleur héritage des styles de base, par Theme.Material variantes Theme.Material , ou si vous utilisez appcompat puis les variantes Theme.AppCompat . Dans chaque style, annulez les valeurs telles que les couleurs, les drawables, etc. avec des valeurs spécifiques à la matière.

    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> 

    Cela sera suffisant si vous utilisez appcompat attributs framework ou appcompat (par exemple, colorAccent , android:textColorPrimary etc.) dans vos mises en page. Mais si vous avez besoin de vos propres attributs (par exemple, un dessinable avec une couleur différente par thème), vous devrez définir des attributs personnalisés .

    Valeurs / attrs.xml

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

    Spécifiez les valeurs spécifiques à chaque thème pour vos attributs personnalisés:

    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> 

    Ensuite, reportez-vous à vos attributs personnalisés avec ?attr/ prefix dans les mises en page, les menus, 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> 

    Consultez la publication de mon blog pour le guide complet.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.