आप नए टूलबार के लिए शीर्षक रंग कैसे सेट करते हैं?


119

मैं नए v7 टूलबार का उपयोग कर रहा हूं और मेरे जीवन के लिए यह पता नहीं लगा सकता है कि शीर्षक का रंग कैसे बदलना है। मैंने टूलबार के @ स्टाइल को स्टाइल में घोषित शैली में सेट किया है। xml और टेक्स्ट टेक्सटाइल के साथ टाइटल टेक्सटाइल लागू किया है। क्या मैं कुछ भूल रहा हूँ? मैं लॉलीपॉप के लिए कोडिंग कर रहा हूं लेकिन वर्तमान में किटकैट डिवाइस पर परीक्षण कर रहा हूं।

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

    <style name="ActionBar" parent="Theme.AppCompat">
        <item name="android:background">@color/actionbar_background</item>
        <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
    </style>

    <style name="ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_title_text</item>
    </style>

</resources>

actionbar.xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_actionbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    style="@style/ActionBar"/>

जवाबों:


241

विकल्प 1) त्वरित और आसान तरीका (टूलबार केवल)

Appcompat-v7-r23 के बाद से आप अपनी Toolbarया अपनी शैली पर सीधे निम्नलिखित विशेषताओं का उपयोग कर सकते हैं :

app:titleTextColor="@color/primary_text"
app:subtitleTextColor="@color/secondary_text"

यदि आपका न्यूनतम एसडीके 23 है और आप मूल का उपयोग करते हैं तो Toolbarबस नाम स्थान उपसर्ग को बदल दें android

जावा में आप निम्न विधियों का उपयोग कर सकते हैं:

toolbar.setTitleTextColor(Color.WHITE);
toolbar.setSubtitleTextColor(Color.WHITE);

ये तरीके एक रंग int नहीं एक रंग संसाधन ID लेते हैं!

विकल्प 2) टूलबार शैली और विषय विशेषताओं को ओवरराइड करें

लेआउट / xxx.xml

<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="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.MyApp.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    style="@style/Widget.MyApp.Toolbar.Solid"/>

मान / styles.xml

<style name="Widget.MyApp.Toolbar.Solid" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/actionbar_color</item>
    <item name="android:elevation" tools:ignore="NewApi">4dp</item>
    <item name="titleTextAppearance">...</item>
</style>

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
    <!-- Parent theme sets colorControlNormal to textColorPrimary. -->
    <item name="android:textColorPrimary">@color/actionbar_title_text</item>
</style>

मदद! मेरे आइकन भी रंग बदल गए!

@PeterKnut ने बताया कि यह ओवरफ्लो बटन, नेविगेशन ड्रावर बटन और बैक बटन के रंग को प्रभावित करता है। यह पाठ का रंग भी बदलता है SearchView

आइकन रंगों के संबंध में: colorControlNormalइनहेरिट से

  • android:textColorPrimary डार्क थीम के लिए (काले रंग पर सफेद)
  • android:textColorSecondary हल्के विषयों के लिए (सफेद पर काला)

यदि आप इसे एक्शन बार के थीम पर लागू करते हैं , तो आप आइकन रंग को कस्टमाइज़ कर सकते हैं।

<item name="colorControlNormal">#de000000</item>

Appcompat-v7 में r23 तक एक बग था, जिसके लिए आपको मूल समकक्ष की तरह ओवरराइड करने की भी आवश्यकता थी:

<item name="android:colorControlNormal" tools:ignore="NewApi">?colorControlNormal</item>

मदद! मेरा खोज दृश्य गड़बड़ है!

नोट: यह खंड संभवतः अप्रचलित है।

चूंकि आप खोज विजेट का उपयोग करते हैं, जो किसी कारण से appcompat-v7 के साथ शामिल की तुलना में अलग-अलग बैक एरो (नेत्रहीन, तकनीकी रूप से नहीं) का उपयोग करता है, आपको इसे ऐप के विषय में मैन्युअल रूप से सेट करना होगा । लाइब्रेरी के समर्थन को सही ढंग से रंगा हुआ है। अन्यथा यह हमेशा सफेद होता।

<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>

खोज दृश्य पाठ के लिए ... कोई आसान तरीका नहीं है। अपने स्रोत के माध्यम से खुदाई करने के बाद मुझे पाठ देखने के लिए एक रास्ता मिला। मैंने इसका परीक्षण नहीं किया है, तो कृपया मुझे टिप्पणियों में बताएं अगर यह काम नहीं करता है।

SearchView sv = ...; // get your search view instance in onCreateOptionsMenu
// prefix identifier with "android:" if you're using native SearchView
TextView tv = sv.findViewById(getResources().getIdentifier("id/search_src_text", null, null));
tv.setTextColor(Color.GREEN); // and of course specify your own color

बोनस: ओवरराइड एक्शनबार शैली और थीम विशेषताएँ

डिफ़ॉल्ट कार्रवाई के लिए उपयुक्त स्टाइल appcompat-v7 एक्शन बार इस तरह दिखेगा:

<!-- ActionBar vs Toolbar. -->
<style name="Widget.MyApp.ActionBar.Solid" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="background">@color/actionbar_color</item> <!-- No prefix. -->
    <item name="elevation">4dp</item> <!-- No prefix. -->
    <item name="titleTextStyle">...</item> <!-- Style vs appearance. -->
</style>

<style name="Theme.MyApp" parent="Theme.AppCompat">
    <item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Solid</item>
    <item name="actionBarTheme">@style/ThemeOverlay.MyApp.ActionBar</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>

2
इस समाधान के विभिन्न दुष्प्रभाव हैं। textColorPrimary को नेविगेशन ड्रावर बटन और टेक्स्ट पर भी खोज विजेट में लागू किया जाता है। इसके अलावा, बैक बटन का रंग सफेद पर सेट है (मुझसे पूछें क्यों नहीं)।
पीटर नट

@PeterKnut उस समय मुझे एहसास नहीं हुआ कि प्रस्तावित समाधान कितना अधूरा था। संपादित करने के बाद - यह है कि मैं इसे कैसे उपयोग करता हूं और यह काम करता है। हालाँकि कृपया खोज दृश्य पाठ रंग स्निपेट की समीक्षा करें।
यूजेन पिंचेक

अब यह लगभग सही ढंग से काम करता है। दो नोट: खोज विजेट में पाठ खोदना अच्छा विचार नहीं है, इसकी आईडी भविष्य में बदली जा सकती है। Widget.MyApp.ActionBar में पृष्ठभूमि संपत्ति बटन और टूलटिप्स में भी पृष्ठभूमि को प्रभावित करती है। बैकग्राउंड को सीधे <android.support.v7.widget.Toolbar> में सेट करना होगा।
पीटर नट

मैं सहमत हूं, यह एक अच्छा विचार नहीं है, मैं कम से कम एक अशक्त जांच को वहां जोड़ दूंगा (हालांकि उस आईडी को बदलने की संभावनाएं क्या हैं)। पृष्ठभूमि के बारे में: आप सही नहीं हैं, अगर आप इसे टूलबार तत्व की शैली के रूप में जोड़ते हैं, तो पृष्ठभूमि केवल टूलबार विजेट पर लागू होती है। यदि आप पृष्ठभूमि को परिभाषित करते हैं ThemeOverlayऔर इसे एक विषय के रूप में उपयोग करते हैं , तो प्रत्येक बाल तत्व की पृष्ठभूमि भी रंगीन हो जाएगी।
यूजेन पिंचेक

ठीक है, आप शैली बनाम थीम के साथ सही हैं। मेरी गलती।
पीटर नट

40

यहां मेरा समाधान है यदि आपको शीर्षक का केवल रंग बदलने की आवश्यकता है और खोज विजेट में पाठ का रंग नहीं।

लेआउट / toolbar.xml

<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:background="@color/toolbar_bg"
    app:theme="@style/AppTheme.Toolbar"
    app:titleTextAppearance="@style/AppTheme.Toolbar.Title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"/>

मान / themes.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
    </style>

    <style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
        <!-- Customize color of navigation drawer icon and back arrow --> 
        <item name="colorControlNormal">@color/toolbar_icon</item>
    </style>

    <style name="AppTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
        <!-- Set proper title size -->
        <item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
        <!-- Set title color -->
        <item name="android:textColor">@color/toolbar_title</item>
    </style>
</resources>

इसी तरह से, आप सबटाइटलटेक्स्टयरेंस को भी सेट कर सकते हैं।


मुझे एक समस्या हो रही थी कि शीर्षक का रंग इस बात पर निर्भर करता है कि टूलबार फ्रेगमेंट में मौजूद है या किसी गतिविधि में। रंग को ओवरराइड करने के लिए इस ट्रिक का उपयोग करना एकमात्र फिक्स था जिसे मैं पा सकता था (रंग बदलने के अन्य तरीके काम नहीं करते थे)। मुझे उम्मीद है कि इससे और लोगों को मदद मिलेगी। धन्यवाद!
पेड्रो लौरेइरो

3
@ पेटर नॉट आपको यह निर्दिष्ट करने की आवश्यकता है कि यह केवल API21 और इसके बाद के संस्करण के लिए काम करता है, जो इसे बेकार बनाता है
DoruChidean

@DoruChidean जेली बीन (एपीआई 16) के साथ परीक्षण किया गया: यह एक आकर्षण की तरह काम करता है!
क्रुबियो

गतिविधि पर विषय निर्धारित करना संभव नहीं है। IE, <गतिविधि android: name = "। SomeActivity" android: theme = "@ style / AppTheme.Toolbar"
खोया हुआ

11

यदि आप API 23 और इसके बाद के संस्करण का समर्थन कर रहे हैं, तो आप अब टूलबार का शीर्षक रंग सेट करने के लिए titleTextColor विशेषता का उपयोग कर सकते हैं ।

लेआउट / toolbar.xml

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:titleTextColor="@color/colorPrimary"
        />

MyActivity.java

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar)
toolbar.setTitleTextColor(Color.WHITE);

ये appcompat पुस्तकालय द्वारा समर्थित होने लगते हैं।
यूजेन पिंचेक 20

10

app:titleTextColorमेरे android.support.v7.widget.Toolbarलिए एंड्रॉइड 4.4 पर और 6.0 पर भी मेरे काम की सेटिंग com.android.support:appcompat-v7:23.1.0:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:titleTextColor="@android:color/white" />

4
ध्यान दें कि नाम स्थान ऐप है न कि Android।
टॉमी

बस इस लाइन ऐप को जोड़ने पर: titleTextColor = "@ android: color / white" मेरे लिए किटकैट और उससे भी ऊपर काम किया। धन्यवाद @ झुंआदिम
घनश्याम

9

यह मुझे थोड़ी देर के लिए परेशान कर रहा था और मुझे दिए गए जवाबों में से कोई भी पसंद नहीं था, इसलिए मुझे यह देखने के लिए स्रोत पर एक नज़र थी कि यह कैसे काम करता है।

फ्रैक्टलवेंच सही रास्ते पर है, लेकिन इसका उपयोग एपीआई 23 से नीचे किया जा सकता है और इसे उस टूलबार पर सेट नहीं करना पड़ता है जो यह स्व है।

जैसा कि दूसरों ने कहा है कि आप टूलबार पर एक शैली सेट कर सकते हैं

app:theme="@style/ActionBar"

और उस शैली में आप शीर्षक पाठ का रंग सेट कर सकते हैं

<item name="titleTextColor">#00f</item>

प्री एपीआई 23 के लिए या 23+ के लिए

<item name="android:titleTextColor">your colour</item>

फुल एक्स.एम.एल.

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


<style name="ActionBar" parent="@style/ThemeOverlay.AppCompat.ActionBar">
    <item name="android:titleTextStyle">@style/ActionBarTextStyle</item>
    <item name="titleTextColor">your colour</item>
    <item name="android:background">#ff9900</item>
</style>

एक टूलबार के लिए सेट की जा सकने वाली सभी विशेषताओं का उपयोग करता है

<declare-styleable name="Toolbar">
    <attr name="titleTextAppearance" format="reference" />
    <attr name="subtitleTextAppearance" format="reference" />
    <attr name="title" />
    <attr name="subtitle" />
    <attr name="gravity" />
    <attr name="titleMargins" format="dimension" />
    <attr name="titleMarginStart" format="dimension" />
    <attr name="titleMarginEnd" format="dimension" />
    <attr name="titleMarginTop" format="dimension" />
    <attr name="titleMarginBottom" format="dimension" />
    <attr name="contentInsetStart" />
    <attr name="contentInsetEnd" />
    <attr name="contentInsetLeft" />
    <attr name="contentInsetRight" />
    <attr name="maxButtonHeight" format="dimension" />
    <attr name="navigationButtonStyle" format="reference" />
    <attr name="buttonGravity">
        <!-- Push object to the top of its container, not changing its size. -->
        <flag name="top" value="0x30" />
        <!-- Push object to the bottom of its container, not changing its size. -->
        <flag name="bottom" value="0x50" />
    </attr>
    <!-- Icon drawable to use for the collapse button. -->
    <attr name="collapseIcon" format="reference" />
    <!-- Text to set as the content description for the collapse button. -->
    <attr name="collapseContentDescription" format="string" />
    <!-- Reference to a theme that should be used to inflate popups
         shown by widgets in the toolbar. -->
    <attr name="popupTheme" format="reference" />
    <!-- Icon drawable to use for the navigation button located at
         the start of the toolbar. -->
    <attr name="navigationIcon" format="reference" />
    <!-- Text to set as the content description for the navigation button
         located at the start of the toolbar. -->
    <attr name="navigationContentDescription" format="string" />
    <!-- Drawable to set as the logo that appears at the starting side of
         the Toolbar, just after the navigation button. -->
    <attr name="logo" />
    <!-- A content description string to describe the appearance of the
         associated logo image. -->
    <attr name="logoDescription" format="string" />
    <!-- A color to apply to the title string. -->
    <attr name="titleTextColor" format="color" />
    <!-- A color to apply to the subtitle string. -->
    <attr name="subtitleTextColor" format="color" />
</declare-styleable>

4

में Toolbarशीर्षक रंग बदलने के लिए सबसे सरल तरीका है CollapsingToolbarLayout

नीचे शैलियों में जोड़ें CollapsingToolbarLayout

<android.support.design.widget.CollapsingToolbarLayout
        app:collapsedTitleTextAppearance="@style/CollapsedAppBar"
        app:expandedTitleTextAppearance="@style/ExpandedAppBar">

styles.xml

<style name="ExpandedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textSize">24sp</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

    <style name="CollapsedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

3

यदि आप appcompat-v7 ऐप का उपयोग कर सकते हैं : titleTextColor = "# fff">

<android.support.v7.widget.Toolbar  
        android:id="@+id/toolbar"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:background="@color/colorPrimary"   
        android:visibility="gone"   
        app:titleTextColor="#fff">   
    </android.support.v7.widget.Toolbar>   

2

इसने मेरे लिए काम किया

<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="wrap_content"
    android:background="?attr/colorPrimary"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    app:navigationIcon="@drawable/ic_back"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:subtitleTextColor="@color/white"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:title="This week stats"
    app:titleTextColor="@color/white">


    <ImageView
        android:id="@+id/submitEditNote"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        android:src="@android:drawable/ic_menu_manage" />
</android.support.v7.widget.Toolbar>

2

अपने xml में एक टूलबार बनाएँ ... toolbar.xml:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"

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

फिर अपने टूलबार में निम्न जोड़ें। xml:

app:titleTextColor="@color/colorText"
app:title="@string/app_name">

Remeber @ color / colorText बस आपकी color.xml फ़ाइल है, जिसमें colorText और आपके color नाम की विशेषता है। यह आपके टूलबार.xml के अंदर आपके रंग को हार्डकोड करने के बजाय अपने तार को कॉल करने का सबसे अच्छा तरीका है। आपके पास अपने पाठ को संशोधित करने के लिए अन्य विकल्प भी हैं, जैसे: textAppearance ... etc ... बस ऐप टाइप करें: टेक्स्ट ... और इंटेलिजेंस आपको एंड्रॉइड स्टूडियो में विकल्प देगा।

आपका अंतिम टूलबार इस तरह दिखना चाहिए:

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_weight="1"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/Theme.AppCompat"
       app:subtitleTextAppearance="@drawable/icon"
        app:title="@string/app_name">
    </android.support.v7.widget.Toolbar>

NB: यह टूलबार आपकी गतिविधि_main.xml.Easy Peasie के अंदर होना चाहिए

एक अन्य विकल्प अपनी कक्षा में यह सब करना है:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitleTextColor(Color.WHITE);

शुभ लाभ


अरे, इस काम के लिए धन्यवाद। लेकिन आप जानते हैं कि उस विशेषता का उपयोग केवल शैलियों में कैसे किया जाता है? इसके बजाय xml को गन्दा करने के लिए। धन्यवाद :)
ग्रेगज़

जाहिर है कि आपका @ कलरर सीधे आपके स्ट्रिंग रिसोर्स से आता है। ऐसे में आपका xml आपके रंगों को हार्डकॉन्ड करने की तुलना में नॉटी है।
रिलेमाँडा

1

रंग बदलने के लिए

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="?attr/colorPrimary"

/>

Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
        myToolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.Auth_Background));
        setSupportActionBar(myToolbar);

1

मैं आज कुछ घंटों के लिए इससे जूझता रहा क्योंकि ये सभी उत्तर अब तक आउट ऑफ डेट हैं और एमडीसी और नई थीमिंग क्षमताओं के साथ मैं क्या देख सकता हूं कि कैसे ओवरराइड नहीं कर सकता app:titleTextColor एक स्टाइल के रूप में ऐप ।

इसका उत्तर यह है कि titleTextColorस्टाइल में उपलब्ध है। xml क्या आप उस चीज़ को ओवरराइड कर रहे हैं जो विरासत में मिली है Widget.AppCompat.Toolbar। आज मुझे लगता है कि सबसे अच्छा विकल्प माना जाता है Widget.MaterialComponents.Toolbar:

<style name="Widget.LL.Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
     <item name="titleTextAppearance">@style/TextAppearance.LL.Toolbar</item>
     <item name="titleTextColor">@color/white</item>
     <item name="android:background">?attr/colorSecondary</item>
</style>

<style name="TextAppearance.LL.Toolbar" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
     <item name="android:textStyle">bold</item>
</style>

और अपने ऐप थीम में, टूलबार सेटेल को निर्दिष्ट करें:

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

अब आप xml को छोड़ सकते हैं जहाँ आप टूल बार को अपरिवर्तित करते हैं। लंबे समय से मैंने सोचा था android:textColorकि टूलबार शीर्षक पाठ उपस्थिति में बदलाव करना काम करना चाहिए, लेकिन किसी कारण से ऐसा नहीं होता है।


0
<?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="wrap_content"
          xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:titleTextColor="@color/white"
    android:background="@color/green" />


0
public class MyToolbar extends android.support.v7.widget.Toolbar {

public MyToolbar(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    AppCompatTextView textView = (AppCompatTextView) getChildAt(0);
    if (textView!=null) textView.setTextAppearance(getContext(), R.style.TitleStyle);
}

}

या MainActivity से सरल उपयोग:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarMain);
setSupportActionBar(toolbar);
((AppCompatTextView) toolbar.getChildAt(0)).setTextAppearance(this, R.style.TitleStyle);

style.xml

<style name="TileStyle" parent="TextAppearance.AppCompat">
    <item name="android:textColor">@color/White</item>
    <item name="android:shadowColor">@color/Black</item>
    <item name="android:shadowDx">-1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">1</item>
</style>

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, लेकिन कुछ संदर्भों को शामिल करना बेहतर होगा, यह बताते हुए कि यह कैसे काम करता है और इसका उपयोग कब करना है। कोड-केवल उत्तर लंबे समय में उपयोगी नहीं हैं।
अदिति रावत

0

के साथ करो toolbar.setTitleTextAppearance(context, R.style.TitleTextStyle);

// यह शैली है जहां आप अपनी रंग योजना को अनुकूलित कर सकते हैं

 <style name="TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:fontFamily">@string/you_font_family</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textAppearance">@style/you_text_style</item>
    <item name="android:textColor">#000000</item>
    <item name="android:textSize">20sp</item>
</style>

0

बहुत सरल, यह मेरे लिए काम किया (शीर्षक और आइकन सफेद):

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/PrimaryColor"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:elevation="4dp" />

0

सामग्री घटक लाइब्रेरी के साथ आप app:titleTextColorविशेषता का उपयोग कर सकते हैं ।

में लेआउट आप की तरह कुछ का उपयोग कर सकते हैं:

<com.google.android.material.appbar.MaterialToolbar
    app:titleTextColor="@color/...."
    .../>

आप एक कस्टम शैली का उपयोग भी कर सकते हैं :

<com.google.android.material.appbar.MaterialToolbar
     style="@style/MyToolbarStyle"
    .../>

के साथ ( Widget.MaterialComponents.Toolbar.Primaryशैली का विस्तार ):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar.Primary">
       <item name="titleTextColor">@color/....</item>
  </style>

या ( Widget.MaterialComponents.Toolbarशैली का विस्तार ):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar">
       <item name="titleTextColor">@color/....</item>
  </style>

यहां छवि विवरण दर्ज करें

आप विशेषता का उपयोग करके शैली द्वारा परिभाषित रंग को भी ओवरराइड कर सकते हैं android:theme( शैली का उपयोग करके Widget.MaterialComponents.Toolbar.Primary):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar.Primary"
        android:theme="@style/MyThemeOverlay_Toolbar"
        />

साथ में:

  <style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is also used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/...</item>
  </style>

यहां छवि विवरण दर्ज करें

या ( Widget.MaterialComponents.Toolbarशैली का उपयोग करके ):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar"
        android:theme="@style/MyThemeOverlay_Toolbar2"

साथ में:

  <style name="MyThemeOverlay_Toolbar3" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is used by title -->
    <item name="android:textColorPrimary">@color/white</item>

    <!-- This attributes is used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/secondaryColor</item>
  </style>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.