it-swarm.com.de

So legen Sie den Text der Symbolleiste und die Farbe des Rückpfeils fest

Symbolleistenhintergrund ist dunkle Farbe, ich möchte, dass Text und hinterer Pfeil weiß sind. Ich habe versucht zu folgen, aber es funktioniert nicht.

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.NoActionBar">

        <item name="colorPrimary">@color/blue</item>
        <item name="colorPrimaryDark">@color/blue_darker</item>
        <item name="colorAccent">@color/purple</item>
        <!-- item name="Android:textColorPrimary">@color/white</item--> // I don't want to set this, changes everywhere. 
        <item name="Android:textColorSecondary">@color/white</item>
        <item name="Android:toolbarStyle">@style/AppTheme.ToolbarStyle</item>
        <item name="toolbarStyle">@style/AppTheme.ToolbarStyle</item>

        <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowStyle</item>

    </style>

    <style name="AppTheme.ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar">
        <!--<item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>-->
        <item name="Android:textColor">@color/white</item> // doesn't work
        <item name="titleTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
        <item name="Android:titleTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item>
        <item name="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item>
    </style>
103
Taranfx

Möglicherweise gehen Sie vom falschen Elternteil aus. Wenn nicht, können Sie versuchen, das style direkt zum toolbar -Layout hinzuzufügen, wenn Sie die Einstellungen des Themas überschreiben möchten.

In Ihrem Symbolleistenlayout:

 <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"
      Android:layout_height="?attr/actionBarSize"
      Android:minHeight="?attr/actionBarSize"
      app:theme="@style/ToolBarStyle"
      app:popupTheme="@style/ToolBarPopupStyle"
      Android:background="@color/actionbar_color" />

In deinen Styles:

 <!-- ToolBar -->
  <style name="ToolBarStyle" parent="Theme.AppCompat">
      <item name="Android:textColorPrimary">@Android:color/white</item>
      <item name="Android:textColorSecondary">@Android:color/white</item>
      <item name="actionMenuTextColor">@Android:color/white</item>      
      <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item>
      <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
 </style>
142
vhuynh

Fügen Sie Folgendes als toolbar.xml hinzu

<?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_height="wrap_content"
    Android:layout_width="match_parent"
    Android:fitsSystemWindows="true"
    Android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    Android:background="?attr/colorPrimary">

</Android.support.v7.widget.Toolbar>

Dann im Layout, wo Sie gebraucht haben

<include layout="@layout/toolbar"/>

Genießen

113
yubaraj poudel

Innerhalb der Aktivität können Sie verwenden

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    toolbar.setTitleTextColor(getResources().getColor(Android.R.color.white));

Wenn Sie XML sowohl für die Titelfarbe als auch für den weißen Pfeil nach hinten lieben, fügen Sie diesen Stil einfach in style.xml hinzu.

 <style name="ToolBarStyle" parent="Theme.AppCompat">
    <item name="Android:textColorPrimary">@Android:color/white</item>
    <item name="Android:textColorSecondary">@Android:color/white</item>
    <item name="actionMenuTextColor">@Android:color/white</item>
</style>

Und die Symbolleiste sieht folgendermaßen aus:

 <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="match_parent"
        app:theme="@style/ToolBarStyle"
        Android:layout_height="?attr/actionBarSize"
  />
51
Shihab Uddin

Diese Lösung könnte einfacher sein. Es ist jedoch eine höhere API-Version erforderlich (23). Fügen Sie einfach diesen Code zu Ihrer Symbolleiste in XML hinzu:

<Toolbar
    Android:id="@+id/toolbar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:minHeight="?android:attr/actionBarSize"
    Android:background="?android:attr/colorPrimary"
    Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    Android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    Android:titleTextColor="#ffffffff" />
16
Tom Esendam
<Android.support.design.widget.AppBarLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:background="?attr/colorPrimaryDark"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
</Android.support.design.widget.AppBarLayout>
9
shantanu

Wenn Sie AndroidX (Stand Juli 2019) verwenden, können Sie Folgendes hinzufügen:

<androidx.appcompat.widget.Toolbar
  Android:id="@+id/toolbar"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  app:layout_collapseMode="pin"
  app:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar"
  app:popupTheme="@style/ThemeOverlay.MaterialComponents.Light"/>

HINWEIS! Dies wurde getestet, um zu funktionieren, wenn Ihr Toolbar direkt in AppBarLayout aber nicht in CollapsingToolbarLayout platziert wird.

6
<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"
Android:layout_height="?attr/actionBarSize"
Android:background="@color/actionBar"
app:titleTextAppearance="@style/ToolbarTitleText"
app:theme="@style/ToolBarStyle">

<TextView
    Android:id="@+id/title"
    style="@style/ToolbarTitleText"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_gravity="center"
    Android:text="hh"/>
<!-- ToolBar -->
<style name="ToolBarStyle" parent="Widget.AppCompat.Toolbar">
    <item name="actionMenuTextColor">#ff63BBF7</item>
</style>

benutze app: theme = "@ style/ToolBarStyle"

Referenzressourcen: http: //blog.csdn.net/wyyl1/article/details/45972371

6
Huang Jinlong

diese Methode hat mir geholfen.

<style name="AppTheme" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primaryDark</item>
        <item name="colorAccent">@color/highlightRed</item>
        <item name="actionBarTheme">@style/ToolbarStyle</item>
</style>

<style name="ToolbarStyle" parent="Widget.AppCompat.ActionBar">
        <item name="Android:textColorPrimary">@color/white</item>
</style>

Versuchen Sie dies in Ihrer XML-Datei

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

Und fügen Sie hinzu, dies ist Ihre colors.xml-Datei

    <color name="colorAccent">YOUR_COLOR</color>

Probieren Sie viele Methoden aus. In der niedrigen Version der API ist <item name="actionMenuTextColor">@color/your_color</item> Eine praktikable Methode und verwenden Sie nicht den Android Namespace)

ps:

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

    <!-- change the textColor -->
    <item name="actionMenuTextColor">@color/actionMenuTextColor</item>
</style>
1
BoBoMEe

Wenn wir der von Android Studios erstellten Aktivitätsvorlage folgen, muss das AppBarLayout ein Android AppBarOverlay-Thema haben, das Sie in Ihren Stilen definieren sollten .xml. Damit sollten Sie Ihre weiße Farbe Toobar/Actionbar Farbtext geben.

<Android.support.design.widget.AppBarLayout
    Android:id="@+id/app_bar"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:theme="@style/AppTheme.AppBarOverlay">  ...

Stellen Sie sicher, dass in styles.xml Folgendes vorhanden ist:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
1
Yaojin

fügen Sie diese Zeile zum Toolbar-Tag hinzu. 100% funktionierendes Android: theme = "@ style/Theme.AppCompat.Light.DarkActionBar"

1
Gurwinder Singh

Ich habe Platzhalter verwendet, folgen Sie also einfach den Anweisungen, da Sie möglicherweise die Vererbung des ursprünglichen Stils beibehalten möchten.

Vor

<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolBar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    Android:elevation="4dp"
    Android:theme="@style/{{originalBaseStyle}}"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Nach:

styles.xml

<style name="{{yourToolbarStyle}}" parent="{{originalBaseStyle}}">
    <item name="Android:textColorPrimary">@Android:color/white</item>
    <item name="Android:textColorSecondary">@Android:color/white</item>
    <item name="actionMenuTextColor">@Android:color/white</item>
    <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

Deshalb

<Android.support.v7.widget.Toolbar
    Android:id="@+id/toolBar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    Android:elevation="4dp"
    Android:theme="@style/{{yourToolbarStyle}}"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
1
Juan Mendez

Wenn Sie die neueste Iteration von Android Studio 3.0 verwenden und Ihre Aktivitätsklassen generieren, ändern Sie dies in Ihren Stildateien:

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

Dazu:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.ActionBar" />
0
muruthi