टूलबार टेक्स्ट और बैक एरो कलर कैसे सेट करें


116

टूलबार की पृष्ठभूमि गहरे रंग की है, मैं चाहता हूं कि पाठ और पीछे का तीर सफेद हो। मैं निम्नलिखित की कोशिश की, लेकिन यह काम नहीं करता है।

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

10
जोड़ने के लिए प्रयास करें app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"अपने लिए <android.support.v7.widget.Toolbar>; बैक एरो और टेक्स्ट सफ़ेद होगा, जैसे @yubarajpoudel ने कहा।
1111161171159459134

जवाबों:


153

संभावना है कि आप गलत माता-पिता से बढ़ रहे हैं। यदि नहीं, तो आप सीधे लेआउट styleको जोड़ने की कोशिश कर सकते toolbarहैं, यदि आप थीम की सेटिंग्स को ओवरराइड करना चाहते हैं।

आपके टूलबार लेआउट में:

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

आपकी शैलियों में:

 <!-- 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>

5
इस शैली को styles.xmlफ़ाइल में जोड़ते समय त्रुटि हुई
गोपाल सिंह सिरवी

1
आपको प्रश्न का उत्तर देने के लिए ड्रावरअरोस्लेटाइल भाग की आवश्यकता नहीं है
लकीचैंलर

124

टूलबार के रूप में निम्नलिखित जोड़ें। 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_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>

फिर लेआउट में जहां आपको आवश्यकता थी

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

का आनंद लें


10
हाँ, काम करता है! विशेष रूप से app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
1111161171159459134

1
होना चाहिए<include layout="@layout/toolbar"/>
टिम

63

गतिविधि के अंदर, आप उपयोग कर सकते हैं

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

यदि आप शीर्षक रंग और बैक एरो दोनों के लिए xml चुनना पसंद करते हैं, तो इस शैली को शैली में जोड़ें। xml

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

और टूलबार जैसा दिखता है:

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

1
यह काम! इतने सारे यादृच्छिक जवाब - मुझे लगता है कि ध्यान देने वाली बात यह है कि यह काम करता है: android.support.v7.widget.Toolbar नेस्टेड इन: android.support.design.widget.AppBarLayout बहुत धन्यवाद
सागर पटेल

1
जावा समाधान तीर का रंग नहीं बदलता है
जावा-लव

19

यह समाधान आसान हो सकता है। लेकिन इसके लिए एक उच्च एपीआई संस्करण (23) की आवश्यकता होती है। बस इस कोड को XML में अपने टूलबार में जोड़ें:

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

@VygintasB सच
टॉम एसेंडम

1
Android: titleTextColor = "# ffffffff", बस android: theme = "@ style / ThemeOverlay.AppCompat.Dark.ActionBar" और ऐप: popupTheme = @ style / ThemeOverlay.AppCompat.Light "सेट करना आवश्यक नहीं है
Almeida

16

यदि आप AndroidX(जुलाई 2019 तक) उपयोग करते हैं तो आप इन्हें जोड़ सकते हैं:

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

ध्यान दें! यह काम करने के लिए परीक्षण किया गया था अगर आपके Toolbarसीधे अंदर AppBarLayoutनहीं बल्कि अंदर रखा गया हैCollapsingToolbarLayout


9
<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>

यह जवाब है अगर तुम एक कर रहे हैं appbarlayout। धन्यवाद!
न्यूमैन

8

इस विधि ने मेरी मदद की।

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

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>

एप्लिकेशन का उपयोग करें: विषय = "@ शैली / टूलबार"

संदर्भ संसाधन .net http: //blog.csdn.net/wyyl1/article/details/45972371


1
कृपया अपने उत्तर स्पष्ट करें, किसी प्रश्न का उत्तर देने के लिए बस पोस्टिंग कोड बहुत स्पष्ट नहीं है।
सुपरबीसमैन

3

अपने XML फ़ाइल पर यह प्रयास करें

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

और जोड़ें यह आपका color.xml फ़ाइल है

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

1
कृपया आप हमारे साथ एप में क्या साझा कर सकते हैं: विषय = "@ शैली / टूलबारकॉलबेकअरो"
सिमोन


1

एपीआई के कम संस्करण में, कई तरीकों की कोशिश करें, एक व्यवहार्य विधि है <item name="actionMenuTextColor">@color/your_color</item>और एंड्रॉइड नेमस्पेस का उपयोग न करें

पुनश्च:

  <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

मैंने ऐसे प्लेसहोल्डर्स का उपयोग किया है ताकि आप अभी भी अनुसरण कर सकें, क्योंकि आप अभी भी मूल शैली से विरासत को रखना चाह सकते हैं।

इससे पहले

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

उपरांत:

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>

इसलिये

<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

अगर हम Android Studios द्वारा बनाए गए गतिविधि टेम्पलेट का अनुसरण करते हैं, तो यह AppBarLayout है, जिसे AppBarOverlay का एंड्रॉइड थीम होना चाहिए, जिसे आपको अपनी शैलियों में परिभाषित करना चाहिए। xml। कि आप अपने सफेद रंग toobar / क्रिया पट्टी रंग पाठ देना चाहिए।

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

Style.xml में, सुनिश्चित करें कि निम्नलिखित मौजूद है:

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

1

सामग्री घटकों के पुस्तकालय का उपयोग करते हुए इस दृष्टिकोण ने मेरे लिए काम किया:

इन styles.xml:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <!-- Your styles here -->

    <item name="toolbarStyle">@style/AppTheme.Toolbar</item>
</style>

<style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar">
    <item name="titleTextColor">@android:color/white</item>
</style>

इस उत्तर से अनुकूलित: https://stackoverflow.com/a/48205577/238753


0

टूलबार के बैक आइकन को बदलने के लिए आप इसका उपयोग कर सकते हैं: अपने थीम में
जोड़ें <item name="toolbarStyle">@style/ToolbarStyle</item>
और यहाँ ToolbarStyleही है:

<style name="ToolbarStyle" parent="Widget.AppCompat.Toolbar">
    <item name="navigationIcon">@drawable/ic_up_indicator</item>
</style>

0

यदि एंड्रॉइड स्टूडियो 3.0 के नवीनतम पुनरावृत्ति का उपयोग करना और अपनी गतिविधि कक्षाओं को बनाना, आपकी शैली में फाइलें इसे बदल देती हैं:

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

इसके लिए:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.ActionBar" />
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.