সরঞ্জামদণ্ডে ফিরে তীর প্রদর্শন করুন


496

আমি থেকে মাইগ্রেট করছি ActionBarকরার Toolbarআমার আবেদন করেন। কিন্তু আমি প্রদর্শন এবং পিছনে তীর সেট ক্লিক ইভেন্টে কিভাবে জানি না Toolbarআমি করেনি Actionbar

এখানে চিত্র বর্ণনা লিখুন

সাথে ActionBar, আমি কল mActionbar.setDisplayHomeAsUpEnabled(true)। তবে এর মতো আর কোন পদ্ধতি নেই method

কেউ কি কখনও এই পরিস্থিতির মুখোমুখি হয়েছেন এবং কোনওভাবে এটি সমাধানের উপায় খুঁজে পেয়েছেন?



GetSupportActionBar () উদাহরণটি এখানে freakyjolly.com/how-to-add-back-arrow-in-android-activity
কোড স্পাই

উত্তর:


899

আপনি যদি একটি ব্যবহার করে থাকেন ActionBarActivityতবে আপনি অ্যান্ড্রয়েডকে তার Toolbarমতো করে ব্যবহার করতে বলতে ActionBarপারেন:

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

এবং তারপর কল

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

কাজ করবে. আপনি যে অংশগুলিতে সংযুক্ত আছেন সেগুলিতে ActionBarActivitiesএটি এটি ব্যবহার করতে পারেন:

((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);

আপনি যদি ব্যবহার করছেন না ActionBarActivitiesবা যদি আপনার Toolbarহিসাবে সেট করা নেই এমন কোনওটির পিছনে তীর পেতে চান SupportActionBarতবে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন:

mActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back));
mActionBar.setNavigationOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
       //What to do on back clicked
   }
});

আপনি যদি ব্যবহার করে থাকেন android.support.v7.widget.Toolbarতবে আপনার নিম্নলিখিত কোডটি আপনার যুক্ত করা উচিত AppCompatActivity:

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}


70
আপনি যদি অ্যাপকোম্প্যাট-ভি 7 (21.0.3 বা তার বেশি) এর সর্বশেষতম সংস্করণটি ব্যবহার করছেন তবে আপনি ব্যাক অ্যারো ড্রয়িংয়ের জন্য আর.ড্রেব্যাবল.এবসি_আইবি_এব_ব্যাক_মিট্র_আম_লফা ব্যবহার করতে পারেন যা সমর্থন লাইব্রেরিতে অন্তর্ভুক্ত রয়েছে।
তাইহে কিম

23
অনুগ্রহ করে নোট করুন যে getResferences ()। GetDrawable (...) অবমূল্যায়িত হয়েছে। পরিবর্তে আপনার ContextCompat.getDrawable (প্রসঙ্গ, ...) ব্যবহার করা উচিত।
কোয়ান্টিন এস।

7
কাজ হয়নি, দু'জনকেও খুঁজে পাচ্ছে R.drawable.abc_ic_ab_back_mtrl_am_alphaনা R.drawable.ic_action_back
হেনরিক ডি সোসা

10
সমর্থন লাইব্রেরি থেকে "ফিরে" আইকনটি পেতে toolbar.setNavigationIcon(android.support.v7.appcompat.R.drawable.abc_ic_ab_back_material);
Bolein95

215

আমি অনেক উত্তর দেখতে পাচ্ছি তবে এখানে আমার দেওয়া আছে যা আগে উল্লেখ করা হয়নি। এটি API 8+ থেকে কাজ করে।

public class DetailActivity extends AppCompatActivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail);

    // toolbar
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    // add back arrow to toolbar
    if (getSupportActionBar() != null){
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // handle arrow click here
    if (item.getItemId() == android.R.id.home) {
        finish(); // close this activity and return to preview activity (if there is any)
    }

    return super.onOptionsItemSelected(item);
}

3
আপনি কেবলমাত্র অ্যাকশনবার হিসাবে সরঞ্জামদণ্ডটি সেট করলেই এটি কাজ করে। এটি স্বতন্ত্র টুলবারগুলির জন্য নয়।
কুফস

20
আপভোটের জন্য মিঃ এঞ্জিনিয়ার onOptionItemSelected()13 তার উত্তরে যা আবৃত হয়নি তা সম্পূর্ণ করে।
অতুল

2
ধন্যবাদ এটি আমার জন্য কাজ করেছে। ক্লিক শ্রোতার ব্যবহারের চেয়ে ভাল বলে মনে হচ্ছে, আমি স্ট্যান্ড
স্টোন

আমি কীভাবে তীরের রং পরিবর্তন করতে পারি?
দিমিত্রি

"সরঞ্জামদণ্ড" মন্তব্য লাইনের অধীনে আমার লাইনগুলির দরকার নেই, দুর্দান্ত কাজ করে।
Hack06

173

এটি অর্জনের অনেকগুলি উপায় রয়েছে, এখানে আমার প্রিয়:

লেআউট:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:navigationIcon="?attr/homeAsUpIndicator" />

কার্যক্রম:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // back button pressed
        }
    });

13
এই প্রশ্নের অন্যান্য পরামর্শগুলির চেয়ে থিমের বৈশিষ্ট্যটি ব্যবহার করা আরও ভাল
পেড্রো ল্যারিও

3
ব্যবহারের পরিবর্তে setNavigationOnClickListener()আপনি case android.R.id.home:'onOptionsItemSelected () `এর ভিতরে যুক্ত করতে পারেন`
ইউজিন

1
case android.R.id.homeআমার জন্য কাজ করেনি। কিছুক্ষণ অনুসন্ধানের পরে, আপনার উত্তরটি কৌশলটি করেছে .. ধন্যবাদ।
ডিজে

এটি সর্বাধিক খাঁটি সমাধান বিশেষত যদি আপনি অ্যান্ড্রয়েড সিস্টেমের ডিফল্ট ব্যাক আইকনটি ব্যবহার করতে চান।
নওমান আসলাম

টুলবার.সেট ন্যাভিগেশনঅনলিকলিস্টিনার using অনব্যাকপ্রেসড ()}
ফিলিটি_উইজার্ড

74

আপনি টুল বার সেট ন্যাভিগেশন আইকন পদ্ধতিটি ব্যবহার করতে পারেন। অ্যান্ড্রয়েড ডক

mToolBar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);

mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        handleOnBackPress();
    }
});

1
আপনি দয়া করে আপনার উত্তরে কিছু ব্যাখ্যা যোগ করতে পারেন? কোড-কেবলমাত্র উত্তরগুলি এসও তে ভ্রান্ত হয়।
হন্ক

1
দয়া করে নোট পদ্ধতিটি setNavigationOnClickListener()এপিআই স্তরের 21 এবং
তদূর্ধে

3
আরডিআরএবল.এবসি_ইচ_এব_ব্যাক_মিট্রেল_ম_আলফা এখন সমর্থন ২৩.২.০ এ চলে গেছে, পরিবর্তে স্বীকৃত উত্তর ব্যবহার করুন।
মিলান

25

আপনি একটি কাস্টম তৈরি করতে না চান তাহলে Toolbar, আপনি এটির মতো করতে পারি না

public class GalleryActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...  
        getSupportActionBar().setTitle("Select Image");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }
}                     

তোমার মধ্যে AndroidManifest.xml

<activity
    android:name=".GalleryActivity"
    android:theme="@style/Theme.AppCompat.Light">        
</activity>

আপনি সমস্ত ক্রিয়াকলাপের জন্য প্রয়োগ করার জন্য android:theme="@style/Theme.AppCompat.Light"এটি <aplication>ট্যাগ করতেও পারেন

এখানে চিত্র বর্ণনা লিখুন


2
ধন্যবাদif (item.getItemId() == android.R.id.home)
আদিজবাক এরগ্যাসেভ

22
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setNavigationIcon(R.drawable.back_arrow); // your drawable
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onBackPressed(); // Implemented by activity
        }
    });

এবং API 21+ এর জন্য android:navigationIcon

<android.support.v7.widget.Toolbar
    android:navigationIcon="@drawable/back_arrow"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"/>

গ্রহণযোগ্য উত্তর হওয়া উচিত।
আন্তন মালিশেভ

17

আমি গুগল বিকাশকারী ডকুমেন্টেশন থেকে এই পদ্ধতিটি ব্যবহার করেছি :

@Override
public void onCreate(Bundle savedInstanceState) {
  ...
  getActionBar().setDisplayHomeAsUpEnabled(true);
}

যদি আপনি একটি নাল পয়েন্টার ব্যতিক্রম পান তবে এটি থিমের উপর নির্ভর করতে পারে। ম্যানিফেস্টে আলাদা থিম ব্যবহার করার চেষ্টা করুন বা এটি বিকল্পভাবে ব্যবহার করুন:

@Override
public void onCreate(Bundle savedInstanceState) {
  ...
  getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

তারপরে ম্যানিফেস্টে যেখানে আমি বর্তমান ক্রিয়াকলাপের জন্য পিতামাতার ক্রিয়াকলাপটি সেট করেছি:

<activity
        android:name="com.example.myapp.MyCurrentActivity"
        android:label="@string/title_activity_display_message"
     android:parentActivityName="com.example.myfirstapp.MainActivity" >
    <!-- Parent activity meta-data to support 4.0 and lower -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.myapp.MyMainActivity" />
</activity>

আমি আশা করি এটা তোমাকে সাহায্য করবে!


1
গুগল ডক্স লিঙ্ক এবং getSupportActionBar()কাজ। ধন্যবাদ!
রিক

15

আপনি যদি সেটা ব্যবহার AppCompatActivityএবং এটি ব্যবহার করছেন না পথে নিচে চলে গেছে, কারণ আপনার স্বয়ংক্রিয় না পেতে চেয়েছিলেন ActionBarএটি প্রদান করে, কারণ আপনার আলাদা করতে চান Toolbar, আপনার মেটারিয়াল ডিজাইন চাহিদা এবং কারণ CoordinatorLayoutবাAppBarLayout তারপর, এই বিবেচনা করুন:

আপনি এখনও এটি ব্যবহার করতে পারেন AppCompatActivity, আপনাকে এটি ব্যবহার বন্ধ করার দরকার নেই যাতে <android.support.v7.widget.Toolbar>আপনি আপনার এক্সএমএলটিতে একটি ব্যবহার করতে পারেন । অ্যাকশন বারের স্টাইলটি কেবল নীচে বন্ধ করুন :

প্রথমে আপনি যে নোঅ্যাকশনবার থিমগুলিতে পছন্দ করেন সেগুলির একটি থেকে একটি স্টাইল পান styles.xml, আমি এর Theme.AppCompat.Light.NoActionBarমতো ব্যবহার করেছি:

<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>

    <!-- colorPrimaryDark is used for the status bar -->
    <item name="colorPrimaryDark">@color/primary_dark</item>
    ...
    ...
</style>

আপনার অ্যাপ্লিকেশনটির ম্যানিফেস্টে, আপনি কেবলমাত্র সংজ্ঞায়িত চাইল্ড স্টাইল থিম চয়ন করুন, এর মতো:

    <activity
        android:name=".activity.YourSuperCoolActivity"
        android:label="@string/super_cool"
        android:theme="@style/SuperCoolAppBarActivity">
    </activity>

আপনার ক্রিয়াকলাপ এক্সএমএলে, সরঞ্জামদণ্ডটি যদি এর মতো সংজ্ঞায়িত হয়:

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

তারপরে এবং এটিই একটি গুরুত্বপূর্ণ অংশ, আপনি আপনার প্রসারিত অ্যাপকম্প্যাটঅ্যাক্টিভিটিতে সমর্থন অ্যাকশন বারটি সেট করেছেন, যাতে আপনার এক্সএমএল-এর সরঞ্জামদণ্ডটি হয়ে যায় অ্যাকশন বারে হয়। আমি অনুভব করি যে এটি একটি ভাল উপায়, কারণ আপনি কাস্টম ক্লিক হ্যান্ডলারগুলি যোগ না করে, মেনুগুলি, স্বয়ংক্রিয় ক্রিয়াকলাপ শিরোনাম, আইটেম নির্বাচন পরিচালনা ইত্যাদির মতো অ্যাকশনবারের দ্বারা অনুমোদিত অনেকগুলি কাজ আপনি করতে পারেন because

আপনার ক্রিয়াকলাপের অনক্রিট ওভাররাইডে নিম্নলিখিতটি করুন:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_super_cool);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

    setSupportActionBar(toolbar);
    //Your toolbar is now an action bar and you can use it like you always do, for example:
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} 

8
MyActivity extends AppCompatActivity {

    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        toolbar = (Toolbar) findViewById(R.id.my_toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(arrow -> onBackPressed());
    }

আপনি retrolambda ব্যবহার করতে পারেন।
আর্তেমি

এটি আমার আছে এবং এটি কাজ করছে না। এটা বুঝতে পারছি না
ফিলিটি_উইজার্ড

7

সরঞ্জামদণ্ডে ফিরে আসা বোতামটি দেখানোর সহজ এবং সহজ উপায়

এই কোডটি অনক্রিট পদ্ধতিতে আটকান

 if (getSupportActionBar() != null){

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

এই ওভাররাইড পদ্ধতিটি অনক্রিট পদ্ধতির বাইরে আটকান

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId()== android.R.id.home) {

        finish();
    }
    return super.onOptionsItemSelected(item);
}

7

কোটলিনে এটি হবে

private fun setupToolbar(){
    toolbar.title = getString(R.string.YOUR_TITLE)
    setSupportActionBar(toolbar)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)
    supportActionBar?.setDisplayShowHomeEnabled(true)
}

// don't forget click listener for back button
override fun onSupportNavigateUp(): Boolean {
    onBackPressed()
    return true
}

6

সহজেই আপনি এটি করতে পারেন।

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

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

ক্রেডিট: https://freakycoder.com/android-notes-24-how-to-add-back-button-at-toolbar-941e6577418e


5

ইন AppCompatActivityউদাহরণস্বরূপ আপনি কি করতে পারেন

public class GrandStatActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grand_stat);
    }

    @Override
    public void onResume() {
        super.onResume();

        // Display custom title
        ActionBar actionBar = this.getSupportActionBar();
        actionBar.setTitle(R.string.fragment_title_grandstats);

        // Display the back arrow
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    // Back arrow click event to go to the parent Activity
    @Override
    public boolean onSupportNavigateUp() {
        onBackPressed();
        return true;
    }

}

4

ক্রিয়াকলাপের জন্য আপনার ম্যানিফেস্ট ফাইলে যেখানে আপনি পিছনের বোতামটি যুক্ত করতে চান, আমরা সম্পত্তিটি অ্যান্ড্রয়েড ব্যবহার করব : প্যারেন্টঅ্যাক্টিভিটি নাম

        <activity
        android:name=".WebActivity"
        android:screenOrientation="portrait"
        android:parentActivityName=".MainActivity"
        />

পিএস এই বৈশিষ্ট্যটি এপিআই লেভেল 16 এ প্রবর্তিত হয়েছিল।


3

এটি পুরোপুরি কাজ করে

public class BackButton extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chat_box);
        Toolbar chatbox_toolbar=(Toolbar)findViewById(R.id.chat_box_toolbar);
        chatbox_toolbar.setTitle("Demo Back Button");
        chatbox_toolbar.setTitleTextColor(getResources().getColor(R.color.white));
        setSupportActionBar(chatbox_toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        chatbox_toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //Define Back Button Function
            }
        });
    }
}

3

প্রথমত, আপনাকে সরঞ্জামদণ্ডটি আরম্ভ করতে হবে:

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

তারপরে অ্যাকশন বার থেকে পিছনের বোতামটি কল করুন:

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

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
}

2

আপনি যদি এমন কোনও সরঞ্জামদণ্ডে পিছনের তীরটি পেতে চান যা আপনার সমর্থনঅ্যাকশনবার হিসাবে সেট করা নেই:

(Kotlin)

val resId = getResIdFromAttribute(toolbar.context, android.R.attr.homeAsUpIndicator)
toolbarFilter.navigationIcon = ContextCompat.getDrawable(toolbar.context, resId)
toolbarFilter.setNavigationOnClickListener { fragmentManager?.popBackStack() }

বৈশিষ্ট্য থেকে পুনরায় পেতে:

@AnyRes
fun getResIdFromAttribute(context: Context, @AttrRes attr: Int): Int {
    if (attr == 0) return 0
    val typedValueAttr = TypedValue()
    context.theme.resolveAttribute(attr, typedValueAttr, true)
    return typedValueAttr.resourceId
}

1

বিন্যাস ফোল্ডারে ক্রিয়াকলাপের এক্সএমএল এ যুক্ত করুন:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">
    <android.support.v7.widget.Toolbar
        android:id="@+id/prod_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>

সরঞ্জামদণ্ডকে ক্লিকযোগ্য করে তুলুন, এগুলি অনক্রিট পদ্ধতিতে যুক্ত করুন:

Toolbar toolbar = (Toolbar) findViewById(R.id.prod_toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        finish();
    }
});

1

আপনার থিম থেকে আপ আইকনটি পাওয়ার সম্ভবত একটি আরও নির্ভরযোগ্য উপায় (যদি টুলবারটিকে আপনার অ্যাকশন বার হিসাবে ব্যবহার না করা হয়):

toolbar.navigationIcon = context.getDrawableFromAttribute(R.attr.homeAsUpIndicator)

থিমের অ্যাট্রিবিউটকে একটি অঙ্কনীয় করে তুলতে আমি একটি এক্সটেনশন ফাংশন ব্যবহার করেছি:

fun Context.getDrawableFromAttribute(attributeId: Int): Drawable {
    val typedValue = TypedValue().also { theme.resolveAttribute(attributeId, it, true) }
    return resources.getDrawable(typedValue.resourceId, theme)
}

0

আপনি ব্যবহার করে থাকেন DrawerLayout সঙ্গে ActionBarDrawerToggle , তারপর দেখানোর জন্য পিছনে পরিবর্তে বোতাম মেনু বাটন (এবং viceversa), আপনি আপনার কার্যকলাপে এই কোড যোগ করতে হবে:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.application_name, R.string.application_name);
    mDrawerLayout.addDrawerListener(mDrawerToggle);

    mDrawerToggle.setHomeAsUpIndicator(R.drawable.ic_arrow_back_white_32dp);
    mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            onBackPressed(); // Or you can perform some other action here when Back button is clicked.
        }
    });
    mDrawerToggle.syncState();
    // ...
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mDrawerToggle.onOptionsItemSelected(item))
        return true;

    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
        // ...
    }

    return super.onOptionsItemSelected(item);
}

public void showBackInToolbar(boolean isBack) {
    // Remove next line if you still want to be able to swipe to show drawer menu.
    mDrawerLayout.setDrawerLockMode(isBack ? DrawerLayout.LOCK_MODE_LOCKED_CLOSED : DrawerLayout.LOCK_MODE_UNLOCKED);
    mDrawerToggle.setDrawerIndicatorEnabled(!isBack);
    mDrawerToggle.syncState();
}

সুতরাং যখন আপনাকে মেনু বোতামের পরিবর্তে ব্যাক বোতামটি প্রদর্শন করতে হবে , শোব্যাকআইনটুলবারকে (সত্য) কল করুন এবং আপনার যদি মেনু বোতামের প্রয়োজন হয় , শোব্যাকইনটুলবারকে (মিথ্যা) কল করুন ।

আপনি তীর (ic_arrow_back_white_32dp) দেশের তৈরি করতে পারেন এখানে উপর , অনুসন্ধান arrow_back মধ্যে ক্লিপআর্ট অধ্যায় (ব্যবহারের ডিফল্ট 8dp প্যাডিং সহ 32dp)। আপনার পছন্দসই রঙ নির্বাচন করুন।


0

আপনি সর্বদা আপনার মধ্যে একটি Relative layoutবা একটি যুক্ত করতে পারেনLinear LayoutToolbar পছন্দ অনুসারে টুলবারের যে কোনও জায়গায় ব্যাক আইকন বা ক্লোজ আইকনটির জন্য একটি চিত্র ভিউ রাখতে পারেন

উদাহরণস্বরূপ আমি আমার সরঞ্জামদণ্ডে আপেক্ষিক লেআউটটি ব্যবহার করেছি

 <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar_top"
                android:layout_width="match_parent"
                android:layout_height="35dp"
                android:minHeight="?attr/actionBarSize"
                android:nextFocusDown="@id/netflixVideoGridView"
                app:layout_collapseMode="pin">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">


                    <TextView

                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Myflix"
                        android:textAllCaps="true"
                        android:textSize="19sp"
                        android:textColor="@color/red"
                        android:textStyle="bold" />


                    <ImageView
                        android:id="@+id/closeMyFlix"
                        android:layout_alignParentRight="true"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        app:srcCompat="@drawable/vector_close" />


                </RelativeLayout>

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

এবং এটি এর মতো দেখাচ্ছে:

এখানে চিত্র বর্ণনা লিখুন

আপনি ক্রিয়াকলাপ বা এর মতো টুকরো থেকে সেই চিত্র দর্শনে ক্লিক শ্রোতাদের যোগ করতে পারেন।

  closeMyFlix.setOnClickListener({
            Navigator.instance.showFireTV(  activity!!.supportFragmentManager)
        })

0

কোটলিনের সাথে এটি হয়ে গেল:

XML:

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

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

setSupportActionBar(tbSignToolbar as Toolbar?)//tbSignToolbar :id of your toolbar 
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)

0

আপনি যদি জেটপ্যাক নেভিগেশন ব্যবহার করছেন।

এখানে মেইনএকটিভিটির জন্য লেআউট

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                               xmlns:app="http://schemas.android.com/apk/res-auto"
                                               xmlns:tools="http://schemas.android.com/tools"
                                               android:layout_width="match_parent"
                                               android:layout_height="match_parent"
                                               tools:context=".MainActivity">

<androidx.appcompat.widget.Toolbar
        android:id="@+id/toolBar"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

</androidx.appcompat.widget.Toolbar>

<fragment
        android:id="@+id/my_nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintTop_toBottomOf="@id/toolBar"
        app:layout_constraintBottom_toTopOf="parent"
        app:navGraph="@navigation/nav_graph"/>

আপনার ক্রিয়াকলাপে আপনার সরঞ্জামদণ্ডটি সেটআপ করুন যেমন নীচে আপনার ক্রিয়াকলাপ শ্রেণীর অনক্রিট ()।

val navHostFragment = supportFragmentManager
        .findFragmentById(R.id.my_nav_host_fragment) as NavHostFragment? ?: return

val navController = navHostFragment.findNavController()
val toolBar = findViewById<Toolbar>(R.id.toolBar)
setSupportActionBar(toolBar) // To set toolBar as ActionBar
setupActionBarWithNavController(navController)

setupActionBarWithNavController (NAVController) প্রয়োজন হলে টুলবারে একটি ব্যাক বোতাম তৈরি করবে এবং ব্যাকবটন কার্যকারিতা পরিচালনা করবে। আপনার যদি কাস্টমব্যাক কার্যকারিতা লেখার প্রয়োজন হয় তবে আপনার টুকরা অনক্রিট () পদ্ধতিতে নীচের মত একটি কলব্যাক তৈরি করুন

val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
        // Handle the back button event
    }

ডকুমেন্টেশন থেকে: https://developer.android.com/guide/navication/navication-custom-back


0

যদি আপনি সঠিকভাবে androidx.appcompat.app.AppCompatActivityব্যবহার করে থাকেন:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

তারপরে কেবল Manifest.xmlপিতামাতার ক্রিয়াকলাপে সংজ্ঞা দিন।

<activity
    android:name=".MyActivity"
    ...>
  <meta-data
      android:name="android.support.PARENT_ACTIVITY"
      android:value=".ParentActivity" />
</activity>

পরিবর্তে যদি আপনি একটি ব্যবহার করছেন Toolbarএবং আপনি একটি কাস্টম আচরণ চান তবে কেবল এটি ব্যবহার করুন:

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar" 
    app:navigationIcon="?attr/homeAsUpIndicator"
    .../>

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

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //....
    }
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.