2016-02-17 1 views
2

J'ai une Appbar/barre d'outils AppCompat21 dans presque toutes mes activités. Toutes les activités des fichiers de mise en page sont les suivantes en commun:Comment redéfinir le style de la barre d'outils pour toutes mes activités dans le monde?

<!-- material design actionbar & toolbar --> 
<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/AppTheme.AppBarOverlay" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     /> 

</android.support.design.widget.AppBarLayout> 

donc au lieu d'avoir à ajouter ces attributs tout le temps:

android:theme="@style/AppTheme.AppBarOverlay" 
android:theme="@style/AppTheme.AppBarOverlay" 
app:popupTheme="@style/AppTheme.PopupOverlay" 

J'essaie de savoir comment redéfinir la barre d'accès/barre d'outils Regardez et sentez d'une manière globale dans mon application, donc je n'ai pas besoin de ce morceau de code redondant partout.

Est-ce encore possible? Je l'ai fait pour le style de bouton, mais je ne peux pas obtenir ma tête autour de cette ...

Répondre

2

Vous pouvez créer un fichier de ressources de mise en page contenant votre barre d'outils, nommée toolbar,

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:popupTheme="@style/AppTheme.PopupOverlay" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    app:popupTheme="@style/AppTheme.PopupOverlay" 
/> 

et vos activités vous pouvez simplement faire

<include layout="@layout/toolbar" android:id="@+id/toolbar"> 
+0

Avez-vous essayé et fonctionne-t-il bien? – Spirrow

+0

Je sais que cela fonctionne, mais une partie de ma question est de savoir comment redéfinir l'apparence de la barre d'outils en utilisant le thème/style sans avoir à mettre style = "xyz" à l'intérieur des balises. – Pepster

0

Lorsque vous créez un nouveau projet d'activité vierge dans Android Studio, il crée un fichier styles.xml comprenant les éléments suivants. Je pense que les 2 dernières lignes accomplissent ce que vous voulez au niveau du thème:

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> 
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />