AppCompat-v7 21 এর সাথে অ্যাকশনবারে / সরঞ্জামদণ্ডে আইকন দেখান


130

আমি এগুলি চেষ্টা করেছিলাম - তবে এখনও আগের মতো আইকনটি দেখতে পাচ্ছি না:

getSupportActionBar().setLogo(R.drawable.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);

আমি কাস্টম টুলবার ব্যবহার করার সময় এটি কাজ করে বলে মনে হচ্ছে - তবে এটি আমাকে সমস্ত বিন্যাস ছুঁতে বাধ্য করবে - এর থেকে আরও ভাল উপায় কি আছে?


1
আপনি আপনার ক্রিয়াকলাপ শ্রেণিটি যুক্ত করতে পারেন, যেখানে আপনি অ্যাকশন বার স্টাফ যুক্ত করেছেন?
হর্ষ বর্ধন

উত্তর:


256
getSupportActionBar().setDisplayShowHomeEnabled(true);

সাথে

getSupportActionBar().setIcon(R.drawable.ic_launcher);

7
আপনার ক্রিয়াকলাপের স্টাইলের উপর নির্ভর করে getSupportActionBar()হতে পারে সে বিষয়ে সাবধান nullহন।
jlhonora

2
এখনও এটি আইকন দেখাচ্ছে না। আমি getSupportActionBar () ব্যবহার করেছি। setPisplayHomeAsUpEn اهل (সত্য); । getSupportActionBar () setIcon (R.drawable.ic_app_icon); । getSupportActionBar () setTitle ( "লেবেল");
মীনাক্সি

8
আইকন শিরোনাম বারের মাঝখানে কেন দেখায়? আমি আইকনটি শিরোনাম বারের বাম দিক চাই। দয়া করে সহায়তা করুন .. ধন্যবাদ
মোহাম্মদ রাজোব

1
@ মিনাক্সি আপনি সেটডিসপ্লেশোহোমাইনেবল (সত্য) ব্যবহার করা উচিত;
এইটি

1
নোট করুন যে আইকনটি সেট করা এটিকে ক্লিকযোগ্য করে তোলে না। আপনি যদি ক্লিকযোগ্য আইকনটির সন্ধান .setHomeAsUpIndicatorকরেন তবে আপনার এটিতে এটি ব্যবহার এবং পরিচালনা করতে হবে onOptionsItemSelected
জোশুয়া পিন্টার

32

আধুনিক অ্যান্ড্রয়েড ইউআইএস বিকাশকারীদের তাদের অ্যাপ্লিকেশন আইকনের চেয়ে টুলবারের জন্য দৃশ্যত স্বতন্ত্র রঙের স্কিমের উপর আরও ঝুঁকতে হবে। স্ট্যান্ডার্ড লেআউট হিসাবে অ্যাপ্লিকেশন আইকন প্লাস শিরোনামের ব্যবহার এআইপি 21 ডিভাইস এবং আরও নতুনতে নিরুৎসাহিত করা হয়েছে।

আপনি যদি মতানৈক্য করেন তবে আপনি এটি দিয়ে চেষ্টা করতে পারেন:

এক্সএমএলে সরঞ্জামদণ্ড তৈরি করতে:

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

আপনার ক্রিয়াকলাপে:

@Override
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_layout);

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
    setSupportActionBar(toolbar);
}

আইকনটি সেট করতে setLogo () পদ্ধতিটি ব্যবহার করুন । কোড উত্স।


1
আমি কেবল এটিই উল্লেখ করতে চাই যে বর্তমানে প্লে স্টোর Settingsক্রিয়াকলাপের অ্যাকশন বারে অ্যাপ আইকন রয়েছে। উপাদান আপডেটের পরে এটি এখনও আছে।
অস্টিন মাহুনি

17

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

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayUseLogoEnabled(true);
    getSupportActionBar().setLogo(R.drawable.ic_logo);
    getSupportActionBar().setDisplayShowTitleEnabled(false); //optional

পাশাপাশি:

    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setIcon(R.drawable.ic_logo); //also displays wide logo
    getSupportActionBar().setDisplayShowTitleEnabled(false); //optional

অনেক অপ্রয়োজনীয় পদ্ধতি রয়েছে এবং আইকন সম্পর্কিত নয়
user924

15

সহজ কাজ; শুধু যোগ কর:

app:navigationIcon="@drawable/ic_action_navigation_menu">

থেকে <android.support.v7.widget.Toolbarট্যাগ

@drawable/ic_action_navigation_menuআইকন নাম কোথায়


1
পুরোপুরি কাজ করে! এটি সরঞ্জামদণ্ডে নেভিগেশন আইকন যুক্ত করার সঠিক এবং সহজ উপায়। আপনি যদি নেভিগেশন আইকন ক্লিকগুলি পরীক্ষা করতে চান তবে আপনি নিজের android.R.id.homeআইডি পরীক্ষা করতে পারেন onOptionsItemSelected(...)
সাজিদ

12

একাধিক বিকল্প সেট করার জন্য একটি ভাল উপায়:

setIcon/setLogoআপনি যদি ডিসপ্লেঅপশন সেট করে থাকেন তবেই পদ্ধতিটি কাজ করবে -

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);

আপনি লোগো প্রদর্শনের জন্য বিকল্পগুলি সেট করতে পারেন (কেবল ধ্রুবক যোগ করুন ActionBar.DISPLAY_USE_LOGO)। আরও তথ্য - প্রদর্শনঅ্যাপশন


6

ব্যবহার করার চেষ্টা করুন:

ActionBar ab = getSupportActionBar();
ab.setHomeButtonEnabled(true);
ab.setDisplayUseLogoEnabled(true);
ab.setLogo(R.drawable.ic_launcher);

5
প্রতিশ্রুতিবদ্ধ লাগছিল - তবে এখনও আইকন নেই :-(
ligi

5

আপনি যদি হোম বা পিছনের আইকন সেট করতে চান (লোগো বা স্ট্যাটিক আইকন নয়) যাতে আপনি ব্যবহার করতে পারেন

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setHomeAsUpIndicator( getResources().getDrawable(R.drawable.home) );

এটি সঠিক উত্তর, যেহেতু উপস্থিতি এবং আচরণ স্থাপন করুন
cutiko

কেবল .xmlR.mipmap.ic_launcherR.mipmap.ic_launcher_round
এটিই

এবং আমি লোগো / স্থির আইকন হিসাবে ব্যবহার করেছি কারণ অন্যান্য সমাধানগুলি কুৎসিত কাজ করে
user924

5

অ্যাকশনবারের জন্য:

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back);

সরঞ্জামদণ্ডের জন্য:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back);

5
অ্যাকশনবার এবং সরঞ্জামদণ্ডের জন্য 2 কোডের মধ্যে কোনও পার্থক্য নেই, এটি কি ইচ্ছাকৃত?
কিং কিং

1
অ্যাকশনবারের জন্য হওয়া উচিত: getActionBar () .DisplayHomeAsUpEn सक्षम (সত্য); । getActionBar () setHomeAsUpIndicator (R.drawable.ic_action_back);
দর্শণ

এটি আসলে যাওয়ার উপায়। কেবলমাত্র ব্যবহারের setIconফলে ক্লিকযোগ্য বাটনটিকে মঞ্জুরি দেওয়া হয় না, যেখানে এটিরূপে setHomeAsUpIndicatorএবং পরিচালনা onOptionsItemSelectedপদ্ধতিতে কাজ করে। ধন্যবাদ!
জোশুয়া পিন্টার

4
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);

অথবা একটি এক্সএমএল লেআউটটি কল করুনtool_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar 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:background="@color/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:elevation="4dp">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:src="@drawable/ic_action_search"/>

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

এখন আপনার প্রধান ক্রিয়াকলাপে এই লাইনটি যুক্ত করুন

 <include
     android:id="@+id/tool_bar"
     layout="@layout/tool_bar" />

3

আপনি যদি নিজের টুলবারকে সেটসপোর্টএকশনবার ব্যবহার করে অ্যাকশন বার হিসাবে সেট করতে চান না , আপনি আপনার নেভিগেশন আইকনের পাশে একটি লোগো যুক্ত করতে পারেন (উদাহরণস্বরূপ যদি আপনার পিছনে বোতাম থাকে):

toolbar.setLogo();

বা এক্সএমএলে

<android.support.v7.widget.Toolbar 
    ....
    android:logo="@drawable/logo"
    app:logo="@drawable/logo"/>

এবং আপনার যদি সরঞ্জামদণ্ডে একটি শিরোনাম সেট করা থাকে তবে শিরোনামটি এখনও প্রদর্শিত হবে।

প্রাক্তন: নীচের চিত্রের সবুজ চেকটি লোগো

নেভিগেশন আইকন, লোগো এবং শিরোনাম সহ সরঞ্জামদণ্ড


2

এটা চেষ্টা কর:

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
...
    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayHomeAsUpEnabled(true);
    actionbar.setHomeAsUpIndicator(R.drawable.ic_launcher);

so your icon will be used for Home / back
or

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
...
    ActionBar actionbar = getSupportActionBar();
    actionbar.setDisplayShowHomeEnabled(true);
    actionbar.setIcon(R.drawable.ic_launcher);

স্থির আইকন জন্য


1
toolbar.setLogo(resize(logo, (int) Float.parseFloat(mContext.getResources().getDimension(R.dimen._120sdp) + ""), (int) Float.parseFloat(mContext.getResources().getDimension(R.dimen._35sdp) + "")));


public Drawable resize(Drawable image, int width, int height)
{
    Bitmap b = ((BitmapDrawable) image).getBitmap();
    Bitmap bitmapResized = Bitmap.createScaledBitmap(b, width, height, false);
    return new BitmapDrawable(getResources(), bitmapResized);
}

0

জামারিন.এন্ড্রয়েডে আপনি এগুলি ব্যবহার করতে পারেন:

SupportActionBar.SetHomeButtonEnabled(true);
SupportActionBar.SetDisplayShowHomeEnabled(true);
SupportActionBar.SetDisplayUseLogoEnabled(true);
SupportActionBar.SetIcon(Resource.Drawable.ic_launcher);
SupportActionBar.SetDisplayShowTitleEnabled(false);

Android.Support.V7.app.AppCompatActivity ব্যবহার করা দরকার।


0

এটা চেষ্টা কর. আমার জন্য এটি কাজ করে

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);

0

কোটলিনে আমি কেবল আইকনটি দেখানোর জন্য নিম্নলিখিতগুলি করেছি:

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