অ্যাকশনবারের পিছনের বোতামটি কীভাবে কাস্টমাইজ করা যায়


188

আমি এগুলি থেকে পরামর্শগুলি ব্যবহার করে অ্যাকশন বারের ব্যাকগ্রাউন্ড, লোগো চিত্র এবং পাঠ্যের রঙ কাস্টমাইজ করতে সক্ষম হয়েছি:
অ্যান্ড্রয়েড: কীভাবে অ্যাকশনবারের "হোম" আইকনটি অ্যাপ্লিকেশন আইকন ছাড়া অন্য কিছু হতে পারে?
অ্যাকশনবার পাঠ্য রঙ
অ্যাকশনবারের পটভূমি চিত্র

আমি কাস্টমাইজ করতে চাই সর্বশেষ টুকরটি হল পিছনের বোতামের চিত্র। এটি ডিফল্টভাবে ধূসর এবং আমি এটি সাদা হতে চাই। হয় রঙ পরিবর্তন করা, একটি অঙ্কনযোগ্য নির্দিষ্ট করে দেওয়া বা কেবল স্বচ্ছ করে তোলা (এবং আমার কাস্টমাইজড লোগো চিত্রটিতে শেভ্রন যুক্ত করা) কাজ করবে। আমি কিভাবে এটি সম্পর্কে যেতে পারি?


1
অ্যাকশন বারে কোনও BACK বাটন নেই। BACK বোতামটি সিস্টেম বারে রয়েছে বা স্ক্রিনে নেই (অফ-স্ক্রিন ব্যাক বোতামযুক্ত ডিভাইসের জন্য)।
CommonsWare

1
@ কমন্সওয়্যার, অ্যাকশন বারে 'বাম শেভ্রন' কী বলা হয় তা আমি নিশ্চিত নই - তবে এটি আমি ব্যাক বোতাম হিসাবে উল্লেখ করছি। আমি মনে করি এটি এগিয়ে যাওয়া অ্যান্ড্রয়েড ডিভাইসে ফিজিকাল ব্যাক বোতামটি প্রতিস্থাপন করবে বলে মনে করা হচ্ছে।
সুনীল গওদা

13
না এবং না। এটি হ'ল "আপ" সূচক (তীর অভিযোজন সত্ত্বেও)। আপনি মাধ্যমে এটি সক্রিয় setDisplayHomeAsUpEnabled()উপর ActionBar। এটি কেবল "পিছনে" যাওয়ার কথা বিশেষভাবে অনুমিত নয় । এর অর্থ হল অ্যাপ্লিকেশন আইকনটি আলতো চাপলে পূর্ববর্তী ক্রিয়াকলাপটি ফিরে যাওয়ার পরিবর্তে (উপরের দিকে যাবে) যেমন সিস্টেম সিস্টেমের বারাক বোতামটি নেই।
কমন্সওয়্যার

2
"সুতরাং যে নতুন ডিভাইসে ফিজিক্যাল ব্যাক বোতাম নেই সেগুলি সম্পর্কে কী তারা সবাই 'নরম' ব্যাক বোতামটি প্রদর্শন করে" - তাদের সবারই সিস্টেম বারে একটি ব্যাক বোতাম থাকা উচিত।
কমন্সওয়্যার

3
শুধু একটি ক্ষেত্রে অনেক উপরের বোতামে যোগ করতে চান হবে কেবল ফিরে যান। "দেখুন যখন পূর্বে দেখা পর্দাটিও বর্তমান পর্দার হাইয়ারালিকাল প্যারেন্ট হয়, পিছনে কী টিপলে একটি আপ বোতাম টিপানোর সমান ফল পাওয়া যায় - এটি একটি সাধারণ ঘটনা is" বিকাশকারী.অ্যান্ড্রয়েড /
Dori

উত্তর:


390

"আপ" সাশ্রয়ী সূচকটি homeAsUpIndicatorথিমের বৈশিষ্ট্যে নির্দিষ্ট একটি অঙ্কনযোগ্য দ্বারা সরবরাহ করা হয় । এটি আপনার নিজস্ব কাস্টম সংস্করণ দিয়ে ওভাররাইড করতে এটি এমন কিছু হবে:

<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
    <item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>

আপনি যদি নিজের অ্যাপ্লিকেশনটির সাথে প্রাক-3.0 সমর্থন করছেন তবে নিশ্চিত হয়ে নিন যে আপনি কাস্টম থিমের এই সংস্করণটি values-v11অনুরূপ বা অনুরূপ রেখেছেন ।


10
আমার জন্য কাজ করে। আমি গিথুবের এওএসপি হিসাবে আমার অ্যাকশনবার্ট স্টাইল হিসাবে স্টাইল সেটটির ভিতরে ঘোষনা দিচ্ছিলাম তবে এটি কার্যকর হয়নি - মূল থিমের বাইরে চলে আসার কৌশলটি কাজ করে! +1
ডোরি

37
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>আমার জন্য কাজ করেনি, কিন্তু <item name="homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>করেছে। অনুমান করুন এটি অ্যান্ড্রয়েড সংস্করণ জিনিস
Michał K

6
এর জন্য শীর্ষ এবং নীচের প্যাডিং 0 ডিপি সেট করার কোনও উপায় আছে কি?
জেমস ম্যাকক্র্যাকেন

3
@ জেমস ম্যাকক্র্যাকেন কেবলমাত্র আমি এটি করতে সক্ষম হলাম তা একটি কাস্টম বিন্যাসের মাধ্যমে।
greg7gkb

4
এই কাজটি কারও সাথে করে Navigation Drawer? আমার ধারণা ActionBarDrawerToggle, আপের সূচকটির নিজস্ব একটি দিয়ে প্রতিস্থাপন করা হয়েছে, সুতরাং এটি স্টাইল স্থাপনের কোনও প্রভাব নেই ...
লুকাস জোটা

89

সুতরাং আপনি অ্যান্ড্রয়েড এপিআই স্তরের 18 এবং উপরেরটি যুক্ত হওয়া হোমএএসপিপিডিসিটার () ফাংশনটি ব্যবহার করে এটি প্রোগ্রামগতভাবে সহজেই পরিবর্তন করতে পারেন।

ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);

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

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);


5
আপনি যদি কোনও ড্রয়ার ব্যবহার করছেন, আপনাকে অবশ্যই drawerToggle.setDrawerIndicatorEnabled(false);সূচকটি পরিবর্তন করার আগে কল করতে হবে
ফ্লস

2
@ ফ্লস আপনাকে ধন্যবাদ, সেটড্রাইয়ার ইন্ডিকেটরএএনবেবল (ভুয়া / সত্য); আমার প্রয়োজনীয়তার উপর ভিত্তি করে সামঞ্জস্যপূর্ণ 'পিছনে' এবং (ওপেন ড্রয়ার / ক্লোজ ড্রয়ার) হিসাবে হোম বোতামটি সেট করতে আমার সমস্যার সমাধান করে।
আশরাফ আলশাহায়ে

1
@ ফ্লস ড্রয়ারটগল.সেটড্রাওয়্যার ইন্ডিকেটরএনাবল (মিথ্যা); এটি আমার জন্য কাজ করে :)
প্রসঙ্গ

30

আমি প্রশ্নটি পরীক্ষা করেছি। আমি যে পদক্ষেপগুলি অনুসরণ করি তা এখানে। সোর্স কোডটি গিটহাবটিতে হোস্ট করা হয়েছে: https://github.com/jiahaoliuliu/sherlockActionBarLab

প্রাক-v11 ডিভাইসগুলির জন্য প্রকৃত স্টাইলটি ওভাররাইড করুন।

ডিফল্ট মান ফোল্ডারের ফাইল স্টাইল.এক্সএমএলে অনুসরণ কোডটি অনুলিপি করুন এবং আটকান।

<resources>
    <style name="MyCustomTheme" parent="Theme.Sherlock.Light">
    <item name="homeAsUpIndicator">@drawable/ic_home_up</item>
    </style>
</resources>

নোট করুন যে পিতামাতাকে যে কোনও শার্লক থিমে পরিবর্তন করা যেতে পারে।

V11 + ডিভাইসগুলির জন্য আসল স্টাইলটি ওভাররাইড করুন।

ফোল্ডারের মান একই ফোল্ডারে যেখানে মান-ভি 11 নামে একটি নতুন ফোল্ডার তৈরি করুন। অ্যান্ড্রয়েড স্বয়ংক্রিয়ভাবে এই ফোল্ডারটির সামগ্রীর জন্য এপিআই বা উপরের ডিভাইসগুলির জন্য সন্ধান করবে।

স্টাইল.এক্সএমএল নামে একটি নতুন ফাইল তৈরি করুন এবং ফাইলে কোডটি ফাইলে পেস্ট করুন:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyCustomTheme" parent="Theme.Sherlock.Light">
    <item name="android:homeAsUpIndicator">@drawable/ic_home_up</item>
    </style>
</resources>

নোট থের শৈলীর নাম অবশ্যই ডিফল্ট মান ফোল্ডারে থাকা ফাইলের মতো হওয়া উচিত এবং আইটেমের হোমএএসপিআইডিকেটরটির পরিবর্তে এটিকে অ্যান্ড্রয়েড: হোমএএসপিআইপিডিকেটর বলা হয়।

আইটেম ইস্যুটি হ'ল কারণ 11 বা ততোধিক এপিআইযুক্ত ডিভাইসগুলির জন্য, শার্লক অ্যাকশন বারটি অ্যান্ড্রয়েডের সাথে আসা ডিফল্ট অ্যাকশন বারটি ব্যবহার করে, যার মূল নামটি অ্যান্ড্রয়েড: হোমএএসপিপি ইন্ডিকেটর। তবে এপিআই 10 বা তত্সহ নিম্ন ডিভাইসগুলির জন্য, শার্লক অ্যাকশন বারটি নিজস্ব অ্যাকশনবার ব্যবহার করে, যা বাড়তি সূচক হিসাবে সাধারণকে "হোমএএসপিআইডিফিকেশন" বলে।

ম্যানিফেস্টে নতুন থিমটি ব্যবহার করুন

অ্যাপ্লিকেশন / ক্রিয়াকলাপের জন্য অ্যান্ড্রয়েডমেনিস্ট ফাইলটিতে থিমটি প্রতিস্থাপন করুন:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyCustomTheme" >

2
আপনি যদি ইতিমধ্যে উপলভ্য হোলো আইকনগুলি সন্ধান করেন তবে আপনি @ অঙ্কনযোগ্য / abc_ic_ab_back_back_holo_light বা @ অঙ্কনযোগ্য / abc_ic_ab_back_holo_dark চেষ্টা করতে পারেন
ম্যাসন লি

25

অ্যাকশনবার এবং সরঞ্জামদণ্ডের জন্য ফিরে নেভিগেশন আইকন পরিবর্তন করা পৃথক।

অ্যাকশনবার ওভাররাইড homeAsUpIndicatorবৈশিষ্ট্যের জন্য:

<style name="CustomThemeActionBar" parent="android:Theme.Holo">
    <item name="homeAsUpIndicator">@drawable/ic_nav_back</item>
</style>

টুলবার ওভাররাইড navigationIconবৈশিষ্ট্যের জন্য:

<style name="CustomThemeToolbar" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="navigationIcon">@drawable/ic_nav_back</item>
</style>


5

আপনি যদি সরঞ্জামদণ্ড ব্যবহার করে থাকেন তবে আপনার সেই সমাধানগুলির দরকার নেই। আপনাকে কেবলমাত্র সরঞ্জামদণ্ডের থিম পরিবর্তন করতে হবে

app:theme="@style/ThemeOverlay.AppCompat.Light"

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

আপনি যদি একটি অন্ধকার ব্যবহার করছেন।অ্যাকশনবারটি আপনার পিছনের বোতামটি অন্যরকম সাদা হতে চলেছে যদি আপনি হালকা অ্যাকশনবার থিম ব্যবহার করেন তবে এটি কালো হতে চলেছে।


আপনার কোডটি আমার পক্ষে কাজ করে তবে আমরা কি সেই সূচকটির রঙ পরিবর্তন করতে পারি?
স্টিভ লাক

2
colorControl সাধারণ এবং অ্যান্ড্রয়েড: পাঠ্য রঙ সেকেন্ডারি মানগুলি এর জন্য দায়ী তবে আমি আরও নিশ্চিত নই যে এই মানগুলি কী পরিবর্তন হয়। আপনি নিজের টুলবার থিমে এই মানগুলি সংজ্ঞায়িত করে নিজেকে চেষ্টা করতে পারেন।
ওগুজ ওজকান

আমি ব্যাকগ্রাউন্ড সাদাতে নেভিগেশন আইকনটি প্রদর্শন করতে "অ্যাপ: থিম =" @ শৈলী / থিমওভারলে। অ্যাপকোম্প্যাট.লাইট "" ব্যবহার করছি, তবে এটি ডিফল্ট ধূসর আইকন প্রদর্শন করছে, আমাকে এটি নীলতে পরিবর্তন করা প্রয়োজন। "colorControlNormal and android: TextColorSecondary" কাজ করে না।
স্টিভ লাক

2
একটি পছন্দসই থিম ব্যবহার করুন যা পিতামাতার হিসাবে "থিমঅভারলে.অ্যাপকম্প্যাট.লাইট" রয়েছে। এটি কাজ করতে পারে।
ওগুজ ওজকান

1
নাম = "colorControlNormal" নাম নয় = "অ্যান্ড্রয়েড: colorControlNormal" ব্যবহার করে নাভি আইকনটি পরিবর্তন করার সমাধানটি আমি খুঁজে পেয়েছি। কিন্তু আমি অন্য আঁকতে পরিবর্তন করতে চান, সম্ভবত?
স্টিভ লাক


0

আমি প্রজেক্ট মেনিফেস্ট.এক্সএমএল ফাইলটিতে back.png চিত্রটি ব্যবহার করেছি। এটা প্রকল্পে কাজ ঠিক আছে।

<activity
        android:name=".YourActivity"
         android:icon="@drawable/back"
        android:label="@string/app_name" >
    </activity>

0

গ্রেডল রিসোর্স ডিরেক্টরি আইকনে আইকন পরিচালনা করতে না পারার কারণে আমার অ্যাকশন-বার হোম বোতামের আইকন দিকের একই সমস্যা ছিল

আরবি গ্রেডল রিসোর্স ডিরেক্টরিতে আপনি x-hdpi এবং ইংরাজীতে গ্র্যাডল রিসোর্সের একই আইকন নামটি যেমন xx-hdpi এর মতো বিভিন্ন ঘনত্ব ফোল্ডারে রেখেছেন, যাতে APK এ বিভিন্ন ডিরেক্টরিতে দুটি একই আইকন নাম থাকবে, তাই আপনার ডিভাইস ঘনত্ব নির্ভর আইকনটি আরটিএল বা এলটিআর হতে পারে pick

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