J'ai une barre d'outils que j'utilise et définit le titre avec:
((ActionBarActivity)getActivity()).getSupportActionBar().setTitle("Home");
Est-il possible de changer la couleur du noir au blanc?
J'ai essayé de créer son propre thème et de le définir dans le XML comme ceci, mais pas de dés
<resources>
<!-- Base application theme. -->
<style name="AppTheme2" parent="Theme.AppCompat">
<item name="Android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
<item name="Android:textColorPrimary">@color/primary_text</item>
<item name="Android:textColorSecondary">@color/secondary_text</item>
</style>
<style name="Widget.MyApp.ActionBar" parent="Widget.AppCompat.ActionBar">
<item name="Android:background">@color/primary</item>
<item name="theme">@style/ThemeOverlay.MyApp.ActionBar</item>
<item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>
<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="Android:textColorPrimary">#FFFFFF</item>
</style>
</resources>
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#e5e5e5"
Android:orientation="vertical" >
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:minHeight="?attr/actionBarSize"
Android:background="@color/primary"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
style="@style/Widget.MyApp.ActionBar">
<Spinner
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/statsSpin"
Android:spinnerMode="dropdown"
Android:textColor="#FFFFFF"/>
</Android.support.v7.widget.Toolbar>
<ListView
Android:id="@+id/yourStats"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:dividerHeight="0px"
Android:divider="@null"
>
</ListView>
</LinearLayout>
Par programme:
toolbar.setTitleTextColor(0xFFFFFFFF);
Par le blog Theme vs Style du créateur d’AppCompat et celui publié sur version 21 de AppCompat , une barre d’outils DarkActionBar (c'est-à-dire une Toolbar
avec un arrière-plan sombre et du texte clair) peut être réalisée par ajout de Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
au XML de votre Toolbar
:
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:minHeight="?attr/actionBarSize"
Android:background="@color/primary"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<Spinner
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/statsSpin"
Android:spinnerMode="dropdown"/>
</Android.support.v7.widget.Toolbar>
Cela modifiera la couleur du texte et les couleurs par défaut en plusieurs attributs (tels que votre Spinner
en texte clair, comme cela est nécessaire pour l'arrière-plan sombre.
Créer un nouveau style dans le thème de base de l'application
<style name="custom_toolbar" parent="@style/Widget.AppCompat.Toolbar">
<item name="titleTextColor">#replace with color</item>
</style>
et utiliser le style pour la barre d'outils
<item name="toolbarStyle">@style/custom_toolbar</item>
Je sais qu'il y a beaucoup de réponses au-dessus de l'espoir, cela aidera quelqu'un qui ne comprend pas les réponses ci-dessus.
Android possède une vue appelée Barre d'outils. Cette vue a un titre qui prend toujours comme couleur par défaut des ressources color.xml dont le nom d'élément est accent . Vous pouvez modifier la couleur de votre barre d'outils de deux manières.
Via xml que je vous recommande de faire, voici ci-dessous un exemple
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
app:titleTextColor="@color/White" />Here you can change it.Remember APP attribute not Android
Via programmation par activité ou fragment.
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent));
En XML:
app: titleTextColor = "@ color/White" en tant que
<Android.support.v7.widget.Toolbar
Android:id="@+id/tb_top"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?attr/colorPrimary"
Android:minHeight="?attr/actionBarSize"
app:theme="@style/AppTheme.DarkToolbar"
app:titleTextColor="@color/White" />
Il peut être changé par programme comme vous pouvez répondre ci-dessus. Mais pour réduire la complexité du code, vous devriez le changer via style.xml Tout d’abord, créez attrs.xml dans le dossier res/values Puis ajoutez deux références au dossier attrs.xml au dessous de
attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="toolbar_theme" format="reference" />
<attr name="toolbar_theme_title" format="reference" />
</resources>
Après définition de la référence que créer un style dans style.xml comme ci-dessous
style.xml
<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#00A4E4</item>
<item name="colorPrimaryDark">#AB0634</item>
<item name="colorAccent">#AB0634</item>
<item name="toolbar_theme">@style/CustomTheme.Toolbar</item>
<item name="toolbar_theme_title">@style/CustomTheme.Toolbar.Title</item>
<item name="Android:textColorPrimary">@color/black</item>
<item name="Android:textColorSecondary">@Android:color/black</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="CustomTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
<!-- if you have a navigationdrawer you change it color also -->
<item name="colorControlNormal">#AB0634</item>
</style>
<style name="CustomTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<!-- Set title size -->
<item name="Android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
<!-- Set title color -->
<item name="Android:textColor">#AB0634</item>
</style>
Maintenant, nous avons créé toolbar_theme et toolbar_theme_title référence dans attrs.xml puis donné ces références à notre thème personnalisé dans style.xml.
Enfin, nous donnons cette référence à la barre d’outils comme ci-dessous
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="?attr/colorPrimary"
Android:theme="?attr/toolbar_theme"
app:titleTextAppearance="?attr/toolbar_theme_title"
Android:elevation="4dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
C'est tout. Vous pouvez donner ce thème par programme ou le définir dans androidmanifest.xml comme ci-dessous.
par programmation
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.CustomTheme); // (for Custom theme)
this.setContentView(R.layout.myactivity);
androidmanifest.xml
<application
Android:theme="@style/CustomTheme">
ou
<activity
Android:theme="@style/CustomTheme">
Vous pouvez définir un style de barre d’outils personnalisé en développant les propriétés Widget.AppCompat.Toolbar et en définissant les propriétés titleTextAppearance et subtitleTextAppearance. De cette façon, vous pouvez changer la couleur et la taille du texte du titre et du sous-titre de la barre d’outils à titre de référence http://www.zoftino.com/Android-toolbar-tutorial .
<style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="toolbarStyle">@style/MyToolBarStyle</item>
</style>
<style name="MyToolBarStyle" parent="Widget.AppCompat.Toolbar">
<item name="titleTextAppearance">@style/MyTitleTextAppearance</item>
<item name="subtitleTextAppearance">@style/MySubTitleTextAppearance</item>
</style>
<style name="MyTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="Android:textSize">25dp</item>
<item name="Android:textColor">#ff3d00</item>
</style>
<style name="MySubTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
<item name="Android:textSize">20dp</item>
<item name="Android:textColor">#1976d2</item>
</style>
toolbar.setTitleTextColor (getResources (). getColor (R.color.black));
(barre d’outils est le nom que vous avez donné à votre barre d’outils dans votre classe acitivyt) noms) Il m’a fallu un certain temps pour comprendre cela moi-même mais c’est le seul moyen de le faire fonctionner, le ThemEditor devrait le permettre, mais c’est ce qu’il est.
Utilisez ce code
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
app:titleTextColor="@color/colorAccent"
app:theme="@style/ToolbarColoredBackArrow"
app:subtitleTextColor="@color/colorAccent"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
Pour étendre sur tachyonflux, définir la couleur avec un HEX
toolbar.setTitleTextColor(Color.parseColor("#519c3f"));
Dans Kotlin, en utilisant la réponse de Sandip:
with(getSupportActionBar()) {
val titleText: String = title.toString()
setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
}
Vous pouvez le modifier par programme en utilisant le code suivant.
toolbar.setTitleTextColor(Android.graphics.Color.WHITE);
Vous pouvez changer le thème de votre barre d'actions en utilisant l'attribut actionBarTheme comme suit. Bien qu'il ait été ajouté au niveau 21 de l'API, il semble être compatible avec les anciennes API.
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="actionBarTheme">@style/AppTheme.AppBarOverlay</item>
</style>