নতুন উপাদান থিমের পিছনের তীরের রঙ কীভাবে পরিবর্তন করবেন?


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


XML- ভিত্তিক উত্তর কেউ এতদূর আমার জন্য এই সমস্যা সমাধান করা হয়েছে, কিন্তু আমি সফলভাবে আপনার ব্যবহার করেছেন homeAsUpIndicator/ @drawable/abc_ic_ab_back_mtrl_am_alphaউল্টোমুখী তীর সাদা করতে কোড। আমি জাভাতে হ্যাকিংয়ের চেয়ে এটিকে পছন্দ করি।
নিষেধাজ্ঞা-জিওইঞ্জিনিয়ারিং

পুরাতন কিন্তু এখনও। আপনি কি (অ্যাকশনবার) বা নতুন সরঞ্জামদণ্ডটি ব্যবহার করছেন?
f470071

ডিফল্টটিকে কিছুটা ধূসর বলে মনে করা হচ্ছে, অ্যান্ড্রয়েড: থিম = "@ স্টাইল / উইজেট.অ্যাপকম্প্যাট.লাইট.অ্যাকশনবার" টুলবার এক্সএমএল ট্যাগের মধ্যে ব্যবহার করে। এর রঙ হল # 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
এটিই একমাত্র জিনিস যা আমার জন্য রঙিনন্ট্রোল নরমাল সহ অন্যান্য উইজেটগুলি বাদ না দিয়ে কাজ করেছিল
জরিস

4
এই সমাধানটি নিয়ে সমস্যাটি হ'ল এটি আপনার সমস্ত পিছনের তীরগুলি রঙ করে, যদি আপনি কেবল একটি পরিবর্তন করতে চান এবং বাকিটি সাদা ছেড়ে দিতে চান
ডাবলাক

24
এটা কাজ করে। দয়া করে মনে রাখবেন আপনি ব্যবহার করা উচিত ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_mtrl_am_alpha)কারণ getResources.getDrawable(int)অবচিত
mrroboaat

3
আর একটি সম্ভাব্য সমাধান
হ'ল

12
নোট করুন যে ২৩.২.০ সমর্থন লাইব্রেরিতে abc_ic_ab_back_back_mtrl_am_alpha abc_ic_ab_back_matory- তে পরিবর্তিত হয়েছে
জন

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
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। এই জন্য আপনাকে ধন্যবাদ. প্রশ্ন, অনুসন্ধান ভিউ প্রসারিত হওয়ার সময় আমি প্রদর্শিত তীরটি রঙ করার জন্য শৈলীটি খুঁজে পেতে অক্ষম। কোন সুত্র? এটি সম্ভবত এই উত্তর দ্বারা প্রভাবিত হয় না।
ড্যানিয়েল ওচোয়া

6
আমিও <আইটেমের নাম = "অ্যান্ড্রয়েড colorControlNormal"> যোগ করতে হবে ... </ আইটেমটি> সঙ্গে Android: উপসর্গ
উচ্চতম শ্রেণীয় দেবদূত এর

7
দুর্ভাগ্যক্রমে এটি একটি স্তর 21 এপিআই এবং আপনি নীচের কিছু সমর্থন করতে চাইলে এটি কাজ করবে না।
gphilip

10
যদি আপনার পিতামাতার থিমটি "NoActionBar" থিমগুলির একটি থেকে উদ্ভূত হয় তবে তার colorControlNormalপরিবর্তে মূল থিমটি সেট actionBarThemeকরা যেতে হবে।
জেসন রবিনসন

3
অবশেষে এটি পেতে আমাকে অনুসন্ধান এবং ব্যর্থ হতে এবং আবার অনুসন্ধান করতে 2 ঘন্টা সময় নিয়েছিল। কখনও কখনও অ্যান্ড্রয়েডের স্টাইল 'সিস্টেম' আমাকে বাদাম চালায়! অন্যদের মতো একই স্টাইলিং ব্যবহার না করে এমন একটি ক্রিয়াকলাপ থাকাকালীন এই পদ্ধতিটি ব্যবহার করা বিশেষভাবে গুরুত্বপূর্ণ।
ব্রোন ডেভিস

119

উপরে সমস্ত পরামর্শ চেষ্টা। আমি আমার সরঞ্জামদণ্ডে নেভিগেশন আইকন ডিফল্ট ব্যাক বোতাম তীরের রঙ পরিবর্তন করতে পরিচালিত একমাত্র উপায়টি হ'ল এর মতো বেস থিমটিতে রঙিন নিয়ন্ত্রণ নিয়ন্ত্রণ করুন। সম্ভবত পিতামাতারা থিম.অ্যাপকম্প্যাট.লাইট.নো অ্যাকশনবার ব্যবহার করছেন তার কারণে

<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 এপিআই 21
আদনান আলী

3
@ আদনানআলি আপনি যদি অ্যাপক্যাম্প্যাট ব্যবহার করছেন তবে এটি <API 21 তেও কাজ করবে। স্পষ্টত, AppCompat হয় এখানে ব্যবহার করা হচ্ছে কারণ colorControlNormalহয় না সঙ্গে পূর্বে সমাধান android:
ভিকি চিজওয়ানি

3
তবে এটি অন্য সমস্ত উইজেটগুলির পাশাপাশি রঙও বদলে দেয় .. চেকবক্স এবং রেডিও বোতামগুলির মতো অন্যান্য উইজেটগুলিকে প্রভাবিত করার কোনও উপায় নেই?
ব্রুস

2
তবে এটি রেডিও বোতাম এবং পাঠ্য সম্পাদনার আওতায় থাকা লাইনের মতো অন্যান্য নিয়ন্ত্রণেরও রঙ পরিবর্তন করে।
ডাকা

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

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, ইমো - এটি কেবল
তীরটিকে

আপনি যদি আরও কাস্টম সমাধান চান (আমার ক্ষেত্রে শিরোনাম এবং মেনু আইকনগুলির জন্য বিভিন্ন রঙ) তবে আপনি যে সমাধানটি চান তা এই
TheJudge

3
মনে রাখবেন getNavicationIcon (): getSupportActionBar () সেটডিসপ্লেহোমএএসএপ্পনেবলড (সত্য) কল করার চেষ্টা করার আগে আপনাকে এই কল করতে হবে;
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
উজ্জ্বল ... আমি থিমটিতে এটি যুক্ত করার জন্য সমস্ত উত্তর চেষ্টা করেছিলাম কিন্তু এটি কার্যকর হয়নি ... যেমন আপনি উল্লেখ করেছেন, আমার অ্যান্ড্রয়েড ছিল: থিম = "@ স্টাইল / থিমোভারলে। অ্যাপকোম্প্যাট.অ্যাকশনবার" সম্পত্তিটি আমার সরঞ্জাম বারে। একবার আমি এটি সরিয়ে দিলে এটি কাজ শুরু করে।
রাহুল হাওজ

10

কার্লসের উত্তর সঠিক উত্তর, তবে আমি এই উত্তরটি লেখার সময় 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);

কিছু অন্যান্য স্ট্যাকওভারফ্লো ক্যোয়ারী অনুসরণ করে আমি দেখতে পেলাম কনটেক্সটকম্প্যাট.জেটড্রেবল () কল করা সমান

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: কনটেক্সট কমপ্যাট.জেটড্রেবল ()

লিঙ্ক 2: কনটেক্সট কমপ্যাট.জেট কালার ()


এটি হওয়া উচিত abc_ic_ab_back_material, পরিবর্তে abc_ic_ab_back_mtrl_am_alpha
নরেন্দ্র সিং

7

আমি একটি সমাধান পেয়েছি যা ললিপপ পূর্বের কাজ করে। হোমএএসপিআইডিকেটরের রঙ পরিবর্তন করতে "অ্যাকশনবারজিডটেম" এর মধ্যে "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

সংকলনড্ডক ভার্সন 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 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) এবং কোড এই পৃষ্ঠাতে অন্য উত্তর উল্লেখিত ব্যবহার onActivityCreated আপনার ফিরে আইকন সেট

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

{@ লিঙ্ক #DISPLAY_HOME_AS_UP} প্রদর্শন বিকল্পটি সেট করা স্বয়ংক্রিয়ভাবে হোম বোতামটি সক্ষম করবে।
পি। সাভারভ

2

এটিই আমার পক্ষে কাজ করেছে:

আপনার থিমটিতে নীচের বৈশিষ্ট্যগুলি যুক্ত করুন।

এপিআই 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

সমাধান খুব সহজ

কেবল আপনার স্টাইলে অ্যাপ থিম হিসাবে নিচের লাইনটি রেখে দিন

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

এখন আপনার পুরো এক্সএমএল কোডটি নীচের দেখানো (ডিফল্ট শৈলী) এর মতো দেখাবে।

<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

আমি সবেমাত্র সরঞ্জামদণ্ডের থিমটি @ শৈলী / থিমওভারলে.অ্যাপকম্প্যাট.লাইটে পরিণত করেছি

এবং তীরটি গা dark় ধূসর হয়ে গেল

            <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বৈশিষ্ট্যের দ্বারা প্রভাবিত হয় )। ড্রয়ারের তীরটি কিছুটা বড়।
ফেরান মেলিনিচ

1
সুতরাং, মনে হচ্ছে আপনাকে নিজের আঁকতে সক্ষম সংস্থান সরবরাহ করতে হবে। আপনি এই সরঞ্জামটি ব্যবহার করে এটি উত্পন্ন করতে পারেন: shreyasachar.github.io/AndroidAssetStudio
ফারিয়া

-4

এর চেয়ে ভাল সমাধান না হলে ...

আমি যা করেছি তা হ'ল @drawable/abc_ic_ab_back_mtrl_am_alphaছবিগুলি, যা সাদা বলে মনে হচ্ছে এবং সেগুলি ফটো রঙিন সম্পাদক ব্যবহার করে আমার পছন্দ মতো রঙে আঁকা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.