web-dev-qa-db-fra.com

Changer la couleur du titre dans la barre d’outils?

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>
28
Mike

Par programme:

toolbar.setTitleTextColor(0xFFFFFFFF);
44
tachyonflux

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.

23
ianhanniballake

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>
18
Sanal

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.

  1. 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
    
  2. Via programmation par activité ou fragment.

    Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent));
    
9
Sardor Islomov

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" />
0
Rashmi Jain

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">
0
slymnozdmrc

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>
0
Arnav Rao

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.

0
Jordan Adcock

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" />
0

Pour étendre sur tachyonflux, définir la couleur avec un HEX

 toolbar.setTitleTextColor(Color.parseColor("#519c3f"));
0
ZeroNine

Dans Kotlin, en utilisant la réponse de Sandip:

with(getSupportActionBar()) {
        val titleText: String = title.toString()
        setTitle(Html.fromHtml("<font color='#746E66'>" + titleText + "</font>"))
    }
0
styl3r

Vous pouvez le modifier par programme en utilisant le code suivant.

toolbar.setTitleTextColor(Android.graphics.Color.WHITE);
0
Junaid Ali

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>
0
Didier Corronel