नई सामग्री थीम में बैक एरो का रंग कैसे बदलें?


193

मैंने अपने एसडीके को एपीआई 21 में अपडेट किया है और अब बैक / अप आइकन बाईं ओर इशारा करते हुए एक काला तीर है।

काली पीठ वाला तीर

मैं इसे ग्रे होना चाहूंगा। मैं उसे कैसे कर सकता हूँ?

प्ले स्टोर में, उदाहरण के लिए, तीर सफेद है।

मैंने कुछ शैलियों को सेट करने के लिए ऐसा किया है। के @drawable/abc_ic_ab_back_mtrl_am_alphaलिए उपयोग किया है homeAsUpIndicator। यह ड्रॉबल पारदर्शी (केवल अल्फ़ा) है लेकिन तीर काले रंग में प्रदर्शित होता है। मुझे आश्चर्य है कि अगर मैं जैसा करता हूं वैसे ही रंग सेट कर सकता हूं DrawerArrowStyle। या अगर एकमात्र समाधान मेरा बनाना है @drawable/grey_arrowऔर इसके लिए उपयोग करना है homeAsUpIndicator

<!-- Base application theme -->
<style name="AppTheme" parent="Theme.AppCompat.Light">

    <item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

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

    <item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
    <item name="android:homeAsUpIndicator" tools:ignore="NewApi">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
</style>

<!-- ActionBar style -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">

    <item name="android:background">@color/actionbar_background</item>
    <!-- Support library compatibility -->
    <item name="background">@color/actionbar_background</item>
</style>

<!-- Style for the navigation drawer icon -->
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@color/actionbar_text</item>
</style>

मेरा अब तक का समाधान है @drawable/abc_ic_ab_back_mtrl_am_alpha, जो सफेद होना प्रतीत होता है, और इसे उस रंग में पेंट करना है जिसे मैं एक फोटो संपादक का उपयोग करना चाहता हूं। यह काम करता है, हालांकि मैं @color/actionbar_textजैसे में उपयोग करना पसंद करूंगा DrawerArrowStyle


एक्सएमएल-आधारित उत्तरों में से किसी ने भी अब तक इस मुद्दे को मेरे लिए हल नहीं किया है, लेकिन मैंने आपके एरो homeAsUpIndicator/ @drawable/abc_ic_ab_back_mtrl_am_alphaकोड का सफलतापूर्वक उपयोग किया है ताकि बैक एरो को सफेद बनाया जा सके। मैं इसे जावा में हैक करने से ज्यादा पसंद करता हूं।
प्रतिबंध-जियोइंजीनियरिंग

पुराना है लेकिन फिर भी। क्या आप एक्शनबार या नए टूलबार का उपयोग कर रहे हैं?
f470071

टूलबार XML टैग के अंदर Android: theme = "@ style / Widget.AppCompat.Light.ActionBar" का उपयोग करके डिफ़ॉल्ट को थोड़ा ग्रे माना जाता है। इसका रंग # 737373 है
एंड्रॉइड डेवलपर

जवाबों:


354

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

final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(getResources().getColor(R.color.grey), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);

संशोधन 1:

एपीआई 23 (मार्शमैलो) से शुरू होने वाले ड्रॉबल रिसोर्स abc_ic_ab_back_mtrl_am_alphaको बदल दिया जाता है abc_ic_ab_back_material

संपादित करें:

आप चाहते हैं कि परिणाम प्राप्त करने के लिए आप इस कोड का उपयोग कर सकते हैं:

toolbar.getNavigationIcon().setColorFilter(getResources().getColor(R.color.blue_gray_15), PorterDuff.Mode.SRC_ATOP);

4
यह केवल बात यह है कि मेरे लिए colorControlNormal के साथ अन्य सभी विजेट बंद टिंट बदले बिना काम किया है
जोरिस

4
इस समाधान के साथ समस्या यह है कि आपके सभी अन्य पीछे तीर पेंट हैं, यदि आप केवल एक को बदलना चाहते हैं और बाकी सफेद छोड़ दें
dabluck

24
यह काम करता हैं। कृपया ध्यान दें कि आपको उपयोग करना चाहिए ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_mtrl_am_alpha)क्योंकि getResources.getDrawable(int)पदावनत किया गया है
mrroboaat

3
एक अन्य संभावित समाधान यह होगा कि आप स्वयं उस संसाधन को प्राप्त करें और उसे अपने
आकर्षित करने

12
ध्यान दें कि 23.2.0 सपोर्ट लाइब्रेरी में abc_ic_ab_back_mtrl_am_alpha बदलकर abc_ic_ab_back_material हो गया है
जॉन

206

Toolbarऔर TintManagerस्रोत को देखते हुए , drawable/abc_ic_ab_back_mtrl_am_alphaशैली विशेषता के मूल्य के साथ रंगा हुआ है colorControlNormal

मैंने अपने प्रोजेक्ट में ( <item name="colorControlNormal">@color/my_awesome_color</item>अपनी थीम के साथ) यह सेट करने की कोशिश की , लेकिन यह अभी भी मेरे लिए काला है।

अपडेट :

मिल गया। आपको actionBarThemeविशेषता ( नहीं actionBarStyle ) सेट करने की आवश्यकता है colorControlNormal

उदाहरण के लिए:

<style name="MyTheme" parent="Theme.AppCompat.Light">        
    <item name="actionBarTheme">@style/MyApp.ActionBarTheme</item>
    <item name="actionBarStyle">@style/MyApp.ActionBar</item>
    <!-- color for widget theming, eg EditText. Doesn't effect ActionBar. -->
    <item name="colorControlNormal">@color/my_awesome_color</item>
    <!-- The animated arrow style -->
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>

<style name="MyApp.ActionBarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar">       
    <!-- THIS is where you can color the arrow! -->
    <item name="colorControlNormal">@color/my_awesome_color</item>
</style>

<style name="MyApp.ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="elevation">0dp</item>      
    <!-- style for actionBar title -->  
    <item name="titleTextStyle">@style/ActionBarTitleText</item>
    <!-- style for actionBar subtitle -->  
    <item name="subtitleTextStyle">@style/ActionBarSubtitleText</item>

    <!-- 
    the actionBarTheme doesn't use the colorControlNormal attribute
    <item name="colorControlNormal">@color/my_awesome_color</item>
     -->
</style>

4
यह स्वीकृत उत्तर होना चाहिए। इसके लिए शुक्रिया। प्रश्न, मैं SearchView के विस्तारित होने पर दिखाए गए तीर को रंग देने के लिए शैली नहीं खोज पा रहा हूं। कोई सुराग? यह स्पष्ट रूप से इस जवाब से प्रभावित नहीं है।
डैनियल ओचोआ

6
मुझे यह भी जोड़ना है <<name = "android: colorControlNormal"> ... </ वस्तु> Android के साथ: उपसर्ग
Seraphim का

7
दुर्भाग्य से यह एक स्तर 21 एपीआई है और यदि आप नीचे कुछ भी समर्थन करना चाहते हैं तो यह काम नहीं करेगा।
gphilip

10
यदि आपका मूल विषय "NoActionBar" थीमों में से एक है, तो colorControlNormalरूट थीम पर जाने के बजाय actionBarThemeजाने का मार्ग है।
जेसन रॉबिन्सन

3
मुझे केवल 2 घंटे की खोज और असफलता मिली और अंत में इसे पाने के लिए फिर से खोज करना पड़ा। कभी-कभी android में स्टाइल 'सिस्टम' मुझे पागल कर देता है! यह विधि विशेष रूप से उपयोग करने के लिए महत्वपूर्ण है जब आपके पास एक गतिविधि होती है जो दूसरों की तरह ही स्टाइल का उपयोग नहीं करती है।
ब्रॉन डेविस

119

ऊपर सभी सुझावों की कोशिश की। एकमात्र तरीका जो मैंने अपने टूलबार में नेविगेशन आइकन डिफ़ॉल्ट बैक बटन एरो का रंग बदलने में कामयाब रहा है, इस तरह बेस थीम में colorControlNormal सेट करना है। शायद इस तथ्य के कारण कि पैरेंट Theme.AppCompat.Light.NoActionBar का उपयोग कर रहा है

<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="colorControlNormal">@color/white</item> 
  //the rest of your codes...
</style>

6
सभी का सबसे सरल उत्तर, अन्य कोड के साथ इधर उधर करने के बजाय, बस इस लाइन को अपने में जोड़ेंstyle.xml
रोहन कंडवाल

3
याद रखें कि colorControlNormal को API 21
Adnan Ali

3
@ AdnanAli यदि आप AppCompat का उपयोग कर रहे हैं तो यह <API 21 पर भी काम करेगा। स्पष्ट रूप से, AppCompat का उपयोग यहां किया जा रहा है क्योंकि colorControlNormalइसके साथ उपसर्ग नहीं हैandroid:
विक्की चिजवानी

3
लेकिन यह अन्य सभी विगेट्स के साथ-साथ टिंट को बदल देता है .. किसी भी तरह से अन्य विजेट जैसे चेकबॉक्स और रेडियो बटन को प्रभावित नहीं करना है?
ब्रूस

2
लेकिन यह अन्य नियंत्रणों के रंग को भी बदलता है, जैसे रेडियो बटन और टेक्स्ट एडिट के तहत लाइन।
daka

66

अपने टूलबार थीम में एकल विशेषता जोड़ने की आवश्यकता है -

<style name="toolbar_theme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="colorControlNormal">@color/arrow_color</item>
</style>

इस टूलबार_टैम को अपने टूलबार पर लागू करें।

या

आप सीधे अपने विषय पर आवेदन कर सकते हैं -

<style name="CustomTheme" parent="Theme.AppCompat.Light.NoActionBar">
  <item name="colorControlNormal">@color/arrow_color</item> 
  //your code ....
</style>

5
स्वीकृत उत्तर की कोशिश करना (शायद नेट पर पाया जाने वाला सबसे लोकप्रिय समाधान) मेरे लिए काम नहीं करता है लेकिन यह काम करता है :) एंड्रॉइड के साथ प्रोग्रामिंग करते समय यह इतना पागल हो जाता है।
राजा राजा

4
सरलतम उत्तर। यह अन्य नियंत्रण विषयों को बदले बिना काम करता है। आपको बस अपने टूलबार पर कस्टम टूलबार थीम सेट करना है। :)
सिंपलप्रोग्रामर

1
ओह दर्द आप के माध्यम से जाने के लिए सिर्फ 1 आइकन का रंग बदलने के लिए है .. मेरे लिए पहला काम करता है। दूसरा एक कस्टम टूलबार (और अन्य चीजें भी स्पष्ट रूप से) के लिए काम करता है। 3 साल बाद, बहुत धन्यवाद नव।
अबा

45

बस जोड़ दो

<item name="colorControlNormal">@color/white</item> 

अपने वर्तमान एप्लिकेशन विषय के लिए।


2
यह android.support.v7.widget.AppCompatCheckBox रंग को भी बदल रहा है
उडी ओशी

34

यदि उपयोग करें Toolbar, तो आप यह कोशिश कर सकते हैं

Drawable drawable = toolbar.getNavigationIcon();
drawable.setColorFilter(ContextCompat.getColor(appCompatActivity, colorId), PorterDuff.Mode.SRC_ATOP);

यह स्वीकृत उत्तर होना चाहिए, imho - यह सिर्फ तीर को लक्षित करता है, सबसे सरल साधनों का उपयोग करके सेट करने के लिए तीर मिलता है, और यह एपीआई 21 से नीचे भी संगत है
Antek

यदि आप अधिक कस्टम समाधान चाहते हैं (मेरे मामले में शीर्षक और मेनू आइकन के लिए अलग-अलग रंग) तो यह वह समाधान है जो आप चाहते हैं
TheJudge

3
ध्यान दें कि getNavigationIcon (): getSupportActionar ()। SetDisplayHomeAsUpEnabled (सत्य) को कॉल करने का प्रयास करने से पहले आपको इसे कॉल करने की आवश्यकता हो सकती है;
rrbrambley

सबसे अच्छा जवाब! धन्यवाद।
तेज तर्रार इस्लाम

32

जैसा कि पिछली अधिकांश टिप्पणियों में कहा गया है, समाधान जोड़ना है

<item name="colorControlNormal">@color/white</item> अपने एप्लिकेशन विषय के लिए। लेकिन पुष्टि करें कि आपके लेआउट पर आपके टूलबार तत्व में परिभाषित कोई अन्य विषय नहीं है।

     <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/ThemeOverlay.AppCompat.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

3
शानदार ... मैंने इसे विषय में जोड़ने के सभी उत्तरों के बारे में कोशिश की, लेकिन यह काम नहीं किया ... जैसा कि आपने उल्लेख किया है, मेरे पास मेरे टूल बार में android: theme = "@ style / ThemeOverlay.AppCompat.ActionBar" संपत्ति है। एक बार मैंने इसे हटा दिया, तो यह काम करने लगा।
बजे राहुल हागे

10

Carles का उत्तर सही उत्तर है, लेकिन जब मैं यह उत्तर लिख रहा हूं , तो कुछ तरीके जैसे getDrawable (), getColor () मिल गए । तो अद्यतन उत्तर होगा

Drawable upArrow = ContextCompat.getDrawable(context, R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(ContextCompat.getColor(context, R.color.white), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);

कुछ अन्य स्टैकओवरफ्लो प्रश्नों के बाद मैंने पाया कि ContextCompat.getDrawable () को कॉल करना समान है

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    return resources.getDrawable(id, context.getTheme());
} else {
    return resources.getDrawable(id);
}

और ContextCompat.getColor () के समान है

public static final int getColor(Context context, int id) {
    final int version = Build.VERSION.SDK_INT;
    if (version >= 23) {
        return ContextCompatApi23.getColor(context, id);
    } else {
        return context.getResources().getColor(id);
    }
}

लिंक 1: ContextCompat.getDrawable ()

लिंक 2: ContextCompat.getColor ()


इसके abc_ic_ab_back_materialबजाय होना चाहिए abc_ic_ab_back_mtrl_am_alpha
नरेंद्र सिंह

7

मुझे एक समाधान मिला जो प्री लॉलीपॉप का काम करता है। HomeAsUpIndicator रंग बदलने के लिए "ActionBarWidgetTheme" के भीतर "colorControlNormal" सेट करें। इस तरह दिखने के लिए ऊपर से रॉकगेको का जवाब संशोधित करना:

<style name="MyTheme" parent="Theme.AppCompat.Light">        
    <item name="actionBarTheme">@style/MyApp.ActionBarTheme</item>
    <item name="actionBarStyle">@style/MyApp.ActionBar</item>
    <!-- color for widget theming, eg EditText. Doesn't effect ActionBar. -->
    <item name="colorControlNormal">@color/my_awesome_color</item>
    <!-- The animated arrow style -->
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <!-- The style for the widgets on the ActionBar. -->
    <item name="actionBarWidgetTheme">@style/WidgetStyle</item>
</style>

<style name="WidgetStyle" parent="style/ThemeOverlay.AppCompat.Light">
    <item name="colorControlNormal">@color/my_awesome_color</item>
</style>

7

CompileSdkVersoin 25 पर, आप यह कर सकते हैं:

styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light">
     <item name="android:textColorSecondary">@color/your_color</item>
</style>

6

नीचे दी गई विधि का उपयोग करें:

private Drawable getColoredArrow() {
    Drawable arrowDrawable = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
    Drawable wrapped = DrawableCompat.wrap(arrowDrawable);

    if (arrowDrawable != null && wrapped != null) {
        // This should avoid tinting all the arrows
        arrowDrawable.mutate();
        DrawableCompat.setTint(wrapped, Color.GRAY);
    }

    return wrapped;
}

अब आप इसके साथ ड्रॉबल सेट कर सकते हैं:

getSupportActionBar().setHomeAsUpIndicator(getColoredArrow());

6

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

मेनू नव आइकन रंग बदलें

अंतिम कन्वर्ट मेनू चिह्न रंग

Style.xml में:

<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="android:textColor">@color/colorAccent</item>


</style>

<style name="DrawerArrowStyle" parent="@style/Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@color/colorPrimaryDark</item>
</style>







In Mainfests.xml :

<activity android:name=".MainActivity"
        android:theme="@style/MyMaterialTheme.Base"></activity>

5

एक और समाधान जो आपके लिए काम कर सकता है, वह है कि आप अपने टूलबार को ऐप के एक्शन बार (द्वारा ) setActionBarया के रूप में घोषित न करें setSupportActionBarऔर बैक आइकन को अपने onActivity में सेट करें। इस पेज पर किसी अन्य उत्तर में उल्लिखित कोड का उपयोग करके बनाया गया

final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(getResources().getColor(R.color.grey), PorterDuff.Mode.SRC_ATOP);
toolbar.setNavigationIcon(upArrow);

अब आपको onOptionItemSelectedबैक बटन दबाने पर कॉलबैक नहीं मिलेगा । हालाँकि, आप उस उपयोग के लिए पंजीकरण कर सकते हैं setNavigationOnClickListener। मैं यह करता हूं:

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        getActivity().onBackPressed(); //or whatever you used to do on your onOptionItemSelected's android.R.id.home callback
    }
});

मुझे यकीन नहीं है कि यदि आप मेनू आइटम के साथ काम करेंगे तो यह काम करेगा।


3

हम एक ही समस्या में चल रहे थे और हम जो चाहते थे वह सेट हो गया था

एप्लिकेशन: collapseIcon

टूलबार में विशेषता अंत में, जिसे हमने नहीं पाया क्योंकि यह बहुत अच्छी तरह से प्रलेखित नहीं है :)

<android.support.v7.widget.Toolbar
         android:id="@+id/toolbar"
         android:layout_width="match_parent"
         android:layout_height="@dimen/toolbarHeight"
         app:collapseIcon="@drawable/collapseBackIcon" />

3

इसे इस्तेमाल करे

public void enableActionBarHomeButton(AppCompatActivity appCompatActivity, int colorId){

    final Drawable upArrow = ContextCompat.getDrawable(appCompatActivity, R.drawable.abc_ic_ab_back_material);
    upArrow.setColorFilter(ContextCompat.getColor(appCompatActivity, colorId), PorterDuff.Mode.SRC_ATOP);

    android.support.v7.app.ActionBar mActionBar = appCompatActivity.getSupportActionBar();
    mActionBar.setHomeAsUpIndicator(upArrow);
    mActionBar.setHomeButtonEnabled(true);
    mActionBar.setDisplayHomeAsUpEnabled(true);
}

फ़ंक्शन कॉल:

enableActionBarHomeButton(this, R.color.white);

{@Link #DISPLAY_HOME_AS_UP} प्रदर्शन विकल्प सेट करने से होम बटन स्वचालित रूप से सक्षम हो जाएगा।
पी। सावरोव

2

इसी से मेरा काम बना है:

नीचे दी गई विशेषताओं को अपनी थीम में जोड़ें।

Api 21 से ऊपर टूलबार / एक्शनबार बैक एरो को बदलने के लिए

<item name="android:homeAsUpIndicator">@drawable/your_drawable_icon</item>

एपीआई 21 के नीचे टूलबार / एक्शनबार बैक एरो को बदलने के लिए

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

एक्शन मोड बैक एरो को बदलने के लिए

<item name="actionModeCloseDrawable">@drawable/your_drawable_icon</item>

टूलबार / एक्शनबार छाया को हटाने के लिए

<item name="android:elevation" tools:targetApi="lollipop">0dp</item>
<item name="elevation">0dp</item>
<!--backward compatibility-->
<item name="android:windowContentOverlay">@null</item>

एक्शनबार को अतिप्रवाह योग्य बदलने के लिए

<!--under theme-->
<item name="actionOverflowButtonStyle">@style/MenuOverflowStyle</item>

<style name="MenuOverflowStyle" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="srcCompat">@drawable/ic_menu_overflow</item>

नोट: 'srcCompat' का उपयोग 'android: src' के बजाय 21 से नीचे एपी के लिए वेक्टर ड्रॉबल सपोर्ट के कारण किया जाता है


2

समाधान बहुत सरल है

बस अपनी शैली में निम्नलिखित पंक्ति को AppTheme नाम दें

<item name="colorControlNormal">@color/white</item>

अब आपका पूरा xml कोड नीचे दिखाया जाएगा (डिफ़ॉल्ट शैली)।

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

        <item name="colorPrimary">#0F0F0F</item>
        <item name="android:statusBarColor">#EEEEF0</item>
        <item name="android:windowLightStatusBar">true</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowActivityTransitions">true</item>

        <item name="colorControlNormal">@color/white</item>
</style>

1

मैंने बस टूलबार थीम को @ शैली / ThemeOverlay.AppCompat.Light में बदल दिया है

और तीर गहरे भूरे रंग का हो गया

            <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:gravity="center"
            app:layout_collapseMode="pin"
            app:theme="@style/ThemeOverlay.AppCompat.Light">

1

यहाँ मैंने इसे सामग्री अवयवों में कैसे किया है:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowToggle</item>
</style>

<style name="AppTheme.DrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="color">@android:color/white</item>
</style>

बडी, तुमने मेरा दिन बचा लिया। मैंने पूरा दिन इस पर ही बिताया। मेरी इच्छा है कि मैं आपको अधिक वोट दे सकूं।
धवल पटेल

0

आप नेविगेशन आइकन का रंग इस तरह प्रोग्रामेटिक रूप से बदल सकते हैं:

mToolbar.setNavigationIcon(getColoredArrow()); 

private Drawable getColoredArrow() {
        Drawable arrowDrawable = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
        Drawable wrapped = DrawableCompat.wrap(arrowDrawable);

        if (arrowDrawable != null && wrapped != null) {
            // This should avoid tinting all the arrows
            arrowDrawable.mutate();
                DrawableCompat.setTintList(wrapped, ColorStateList.valueOf(this.getResources().getColor(R.color.your_color)));
            }
        }

        return wrapped;
}

-1

बस अपने विषय से हटा दें android:homeAsUpIndicatorऔर homeAsUpIndicatorयह ठीक हो जाएगा। colorअपने में विशेषता DrawerArrowStyleशैली पर्याप्त होना चाहिए।


मैंने पहले ही कोशिश की है और तीर काला है। ध्यान दें कि यह तीर वही तीर नहीं है जो आप देखते हैं जब आप दराज को खोलते हैं (वह तीर colorविशेषता से प्रभावित होता है )। दराज का तीर थोड़ा बड़ा है।
फेरन मायलिनच 22

1
तो, ऐसा लगता है कि आपको अपना स्वयं का ड्राबल संसाधन उपलब्ध कराना होगा। आप इसे इस टूल का उपयोग करके उत्पन्न कर सकते हैं: shreyasachar.github.io/AndroidAssetStudio
फारिया

-4

जब तक कोई बेहतर उपाय न हो ...

मैंने जो किया वह @drawable/abc_ic_ab_back_mtrl_am_alphaछवियों को लेने के लिए है, जो सफेद प्रतीत होते हैं, और उन्हें उस रंग में चित्रित करते हैं जो मैं एक तस्वीर संपादक का उपयोग करना चाहता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.