Ceci est ma barre d'outils xml
<?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"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp"
Android:layout_height="@dimen/toolbar_height"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
Android:background="@color/primary_color">
</Android.support.v7.widget.Toolbar>
Je veux changer app: theme par programme. Comment puis-je faire cela?
Vous pouvez le faire par programme ou avec style:
Toolbar toolbar; // your toolbar
toolbar.setBackgroundColor(newColor); // i don't tested this method. Write if it's not working
toolbar.setTitleTextColor(titleColor); // if toolbar is white set title to black, if toolbar is black set title to white
Ou vous pouvez le faire avec style:
Ajoutez attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="toolbarStyle" format="reference"/>
</resources>
Et maintenant changez toolbar.xml:
<?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"
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
app:contentInsetEnd="0dp"
app:contentInsetStart="0dp"
Android:layout_height="@dimen/toolbar_height"
app:theme="?attr/toolbarStyle"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
Android:background="@color/primary_color">
</Android.support.v7.widget.Toolbar>
Et dans styles.xml (si vous ne l'avez pas, créez-le):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyStyle.Dark" parent="AppCompat.Theme">
<item name="toolbarStyle">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
<style name="MyStyle.Light" parent="AppCompat.Theme.Light">
<item name="toolbarStyle">@style/ThemeOverlay.AppCompat.Light.ActionBar</item>
</style>
</resources>
Si vous sélectionnez une deuxième méthode (avec des styles), vous devez redémarrer l'activité et utiliser la méthode setTheme avant super.onCreate ()
J'espère que je t'ai aidé.
Utilisez l'extrait de code suivant pour ajouter un thème:
Toolbar toolbar;
toolbar.getContext().setTheme(R.style.ThemeOverlay_AppCompat_Dark_ActionBar);