নতুন নেভিগেশনভিউতে কীভাবে একটি সাধারণ ডিভাইডার তৈরি করবেন?


153

গুগল NavigationViewডিজাইন সমর্থন লাইব্রেরি 22.2.0 সংস্করণে চালু করেছে যার সাহায্যে আপনি একটি মেনু সংস্থান ব্যবহার করে খুব সহজেই একটি ড্রয়ার তৈরি করতে পারেন।

আমি কীভাবে দুটি আইটেমের মধ্যে একটি সাধারণ ডিভাইডার লাইন তৈরি করতে পারি? আইটেম গোষ্ঠীকরণ কাজ করে না। একটি সাব আইটেম বিভাগ তৈরি করা একটি বিভাজক লাইন তৈরি করে, তবে এটির একটি শিরোনাম প্রয়োজন, যা আমি চাই না।

কোন সাহায্য প্রশংসা করা হবে।


এটিতে করা মন্তব্যে যেমন বলা হয়েছে, স্বীকৃত উত্তরের সমস্যাটি হ'ল, যাচাইযোগ্য আচরণটি একাধিক (সমান্তরাল) গ্রুপগুলিতে কাজ করে না। এটি এড়াতে, সমান্তরাল গোষ্ঠী তৈরি না, কিন্তু ব্যবহারের সাব মেনু বা সাব গ্রুপ আমার উত্তর এখানে বর্ণনা অনুযায়ী আপনার মতে বিভক্ত তাদের পেতে: stackoverflow.com/questions/30766919/...
পর্যন্ত

উত্তর:


319

আপনাকে যা করতে হবে তা হ'ল groupএকটি অনন্য আইডি দিয়ে একটি সংজ্ঞা দেওয়া , আমি প্রয়োগটি পরীক্ষা করে দেখেছি যদি গ্রুপের আলাদা আইডি থাকে তবে এটি একটি বিভাজক তৈরি করবে।

বিভাজক তৈরি করে উদাহরণ মেনু:

<menu 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"
    tools:context=".MainActivity">

    <group android:id="@+id/grp1" android:checkableBehavior="single" >
        <item
            android:id="@+id/navigation_item_1"
            android:checked="true"
            android:icon="@drawable/ic_home"
            android:title="@string/navigation_item_1" />
    </group>

    <group android:id="@+id/grp2" android:checkableBehavior="single" >
        <item
            android:id="@+id/navigation_item_2"
            android:icon="@drawable/ic_home"
            android:title="@string/navigation_item_2" />
    </group>
</menu>

9
ভাবছেন কেন এটি (যতদূর আমি জানি) নথিভুক্ত করা হয়নি। আমি মনে করি এটি অনেক জিজ্ঞাসা করা হবে। ধন্যবাদ!
গাতান

16
এই পদ্ধতির সাথে একটি সমস্যা হ'ল setCheckedএটি গ্রুপ স্তরে কাজ করে বলে মনে হচ্ছে। আপনি গ্রুপ এ-তে কোনও আইটেম নির্বাচন করলে, আবার ড্রয়ারটি খুলুন এবং গ্রুপ বিতে আইটেমটি নির্বাচন করুন, উভয় আইটেম হাইলাইট থাকবে। গুগল পরবর্তী প্রকাশে এই আচরণটি সংশোধন করবে, তবে আপাতত, এটি নেভিগেশনভিউয়ের সাথে একাধিক গোষ্ঠীগুলি ব্যবহার করার দিকনির্দেশ।
ক্ষুধার্ত

3
গ্রেট। দ্বিগুণ চেক করা সম্পর্কে, android:checkableBehavior="none"আপনার দ্বিতীয় গ্রুপের জন্য চেষ্টা করুন (এটি ক্রিয়াগুলি, নেভিগেশন নয়, আমি ধরে নিই)
এসপঞ্চি

12
মজার বিষয়, আপনি আইডিটি সরিয়ে groupফেললে এটি সংকলন ও চালিত হবে তবে বিভাজকগুলি গোপন রয়েছে।
ওয়াহিদ আমিরি

5
এটি আমার পক্ষেও কাজ করে না। আমি মেনু গ্রুপগুলির মধ্যে লাইন চেয়েছিলাম, প্রতিটি আইটেমের পরে নয়।
ধনী মোরে

54

এটির মতো একটি অঙ্কনযোগ্য ড্রয়ার_আইটিএম_বিজি.এক্সএমএল তৈরি করুন ,

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#F4F4F4" />
        </shape>
    </item>

    <item android:top="-2dp" android:right="-2dp" android:left="-2dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#EAEAEA" />
        </shape>
        <!--
        android:dashGap="10px"
                android:dashWidth="10px"
                -->
    </item>

</layer-list>

এবং এটি অ্যাপ্লিকেশন হিসাবে নেভিগেশনভিউতে যুক্ত করুন: আইটেমব্যাকগ্রাউন্ড = "@ অঙ্কনযোগ্য / ড্রয়ার_ইটেম_বিজি"

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="#F4F4F4"
        android:layout_gravity="start"
        android:fitsSystemWindows="false"
        app:menu="@menu/activity_main_drawer"
        app:itemBackground="@drawable/drawer_item_bg"/>

এবং আমরা এখানে ...এখানে চিত্র বর্ণনা লিখুন


1
এটি কাজ করে তবে এটি আইটেম আইকনের বাম প্যাডিংও সরিয়ে দেয়। অন্তত আমার কোডে, কোনও কারণে আপনার স্ক্রিনশটে নয়
লুকি

@vbp আমার প্রথম সন্তানের জন্য উপরের সীমানা, অন্য সন্তানের জন্য নীচের সীমানা প্রয়োজন need কীভাবে অর্জন করতে পারলাম। এটি সিএসএসের প্রথম শিশু আইডির সাথে অনুরূপ
প্রবস

@ প্রোফাইলগুলি আরও ভাল কাস্টমাইজেশনের জন্য নেভিগেশনভিউয়ের পরিবর্তে একটি খণ্ড, পুনর্ব্যবহারযোগ্য দৃশ্য বা কাস্টম ভিউগুলি বিবেচনা করবে
ভিবিপি

1
আমি navMenuView.addItemDecoration(new DividerItemDecoration(NavigationViewActivity.this, DividerItemDecoration.VERTICAL));নিখুঁত আইটেম সীমানার জন্য করেছি
Prabs

19

সরল অ্যাড ডিভাইডার আইটেম সজ্জা:

NavigationView navigationView = (NavigationView) findViewById(R.id.navigation);
NavigationMenuView navMenuView = (NavigationMenuView) navigationView.getChildAt(0);
navMenuView.addItemDecoration(new DividerItemDecoration(MainActivity.this,DividerItemDecoration.VERTICAL));

এটি দেখতে এটির মতো:

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


আমি কি addItemDecorationলাইনের উচ্চতা 1px এ পরিবর্তন করতে পারি ?
প্রবস

ধন্যবাদ আপনার সমাধানটি আমার পক্ষে কাজ করেছে। আমি প্রশংসা করি. এই সাথে আরও একটি প্রশ্ন। প্রথম আইটেমের জন্য শীর্ষ সীমানা সরানো এবং কেবল আইটেমের নীচে সীমানা সেট করা কি সম্ভব?
ভাইপার

: @viper এই পড়ুন দয়া bignerdranch.com/blog/...
সনৎ

1
প্রতিটি আইটেমের জন্য এই জাতীয় ডিভাইডার ম্যাটেরিয়াল গাইডলাইনগুলি অনুসরণ করে না
বোরিস রুজানভ

19

এক্সএমএল ব্যবহার করে আপনি মেনু আইটেম ব্যাকগ্রাউন্ড সেট করে ডিভাইডারগুলি সহজেই যুক্ত করতে পারেন app:itemBackground

<android.support.design.widget.NavigationView
    android:id="@id/drawer_navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:menu="@menu/all_navigation_menu"
    app:itemIconTint="@color/colorPrimary"
    app:itemBackground="@drawable/bg_drawer_item"
    android:background="@color/default_background"/>

এবং পটভূমি হিসাবে LayerDrawable ব্যবহার করুন । এটি ক্লিকের জন্য উপাদান ডিজাইন রিপল ওভারলে সংরক্ষণ করে।

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/white"/>
        </shape>
    </item>
    <item android:left="@dimen/activity_horizontal_margin">
        <shape android:shape="rectangle">
            <solid android:color="@color/divider"/>
        </shape>
    </item>
    <item android:bottom="1dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/white"/>
        </shape>
    </item>
</layer-list>

ফলাফল:

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


2
সেরা উত্তর বলে মনে হচ্ছে এবং এতে কোনও গোষ্ঠী জড়িত নেই
মিশা জাইব্রো

আপনি যদি নির্বাচিত আইটেমটির জন্য একটি কাস্টম ব্যাকগ্রাউন্ড রঙ ব্যবহার করতে চান?
আতরাবতী

<শ্যাপি> এ আমার একটি ত্রুটি রয়েছে: এলিমেন্টটি এখানে অনুমোদিত নয়
সাবাসতিয়েন রেমি

11

আমি মনে করি একাধিক পরীক্ষিত আইটেমগুলির সমস্যার জন্য আমার আরও উন্নত সমাধান রয়েছে। আমার উপায় ব্যবহার করে আপনাকে আপনার মেনুতে নতুন বিভাগ যুক্ত করার সময় আপনার কোড পরিবর্তন করার বিষয়ে চিন্তা করতে হবে না। আমার মেনুটি অ্যান্ডয়েড ব্যবহারের পার্থক্যের সাথে জ্যারেড দ্বারা লিখিত স্বীকৃত সমাধানের মতো দেখায়: চেকযোগ্য বিহেভিয়ার = গ্রুপগুলিতে " সমস্ত ":

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:id="@+id/first_section" android:checkableBehavior="all">
        <item
            android:id="@+id/frontpage"
            android:icon="@drawable/ic_action_home_24dp_light_blue"
            android:title="@string/drawer_frontpage" />
        <item
            android:id="@+id/search"
            android:icon="@drawable/ic_search"
            android:title="@string/drawer_search" />
    </group>
    <group android:id="@+id/second_section" android:checkableBehavior="all">
        <item
            android:id="@+id/events"
            android:icon="@drawable/ic_maps_local_movies_24dp_light_blue"
            android:title="@string/drawer_events" />
    </group>
</menu>

'সমস্ত' এর চেকযোগ্য বিহেভিয়ার একক আইটেমগুলি ইচ্ছামত চেক / চেক করা সম্ভব করে তোলে, তারা কোন গ্রুপের অন্তর্ভুক্ত ly আপনাকে কেবল সর্বশেষ চেক করা মেন্যুটিম সংরক্ষণ করতে হবে। জাভা-কোডটি দেখতে দেখতে:

private MenuItem activeMenuItem;

@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
    // Update selected/deselected MenuItems
    if (activeMenuItem != null)
        activeMenuItem.setChecked(false);
    activeMenuItem = menuItem;
    menuItem.setChecked(true);

    drawerLayout.closeDrawers();
    return true;
}

8

নীলেশের উত্তরের মতো বিভিন্ন গ্রুপ তৈরি করা এর মধ্যে একটি বিভাজক তৈরি করে তবে এনএইভি ড্রয়ারে দুটি চেক করা আইটেমের সমস্যা তৈরি করে।

আমি কীভাবে এটি পরিচালনা করেছি তার একটি সহজ উপায়:

    public boolean onNavigationItemSelected(final MenuItem menuItem) {

    //if an item from extras group is clicked,refresh NAV_ITEMS_MAIN to remove previously checked item
    if (menuItem.getGroupId() == NAV_ITEMS_EXTRA) {


        navigationView.getMenu().setGroupCheckable(NAV_ITEMS_MAIN, false, true);
        navigationView.getMenu().setGroupCheckable(NAV_ITEMS_EXTRA, true, true);
       }else{

        navigationView.getMenu().setGroupCheckable(NAV_ITEMS_MAIN, true, true);
        navigationView.getMenu().setGroupCheckable(NAV_ITEMS_EXTRA, false, true);


    }
    //Update highlighted item in the navigation menu
    menuItem.setChecked(true);
}

এমনকি সহজ:android:checkableBehavior="none"
স্প্যানিচ

2
@ স্পিঞ্চি - যদি অন্য গ্রুপগুলিতে নেভিগেশন মেনু আইটেম থাকে তবে এটি কাজ করবে না। এই সমাধানটি কেবল ক্রিয়াগুলির জন্যই কাজ করতে পারে। ইউএক্স অনুশীলনটি ভাল নয়
মোশতাক জামিল

অসাধারণ! আপনি যদি আপনার অপরিজ্ঞাত স্থিতিগুলির NAV_ITEMS_MAIN এবং NAV_ITEMS_EXTRA কে আর.আইড.নভ_সাইটস_গ্রুপ_মেন বা আর.আইডি.নান_সাইটস_গোষ্ঠী_অক্ষেত্রার সাথে পরিবর্তন করে এবং প্রয়োজনীয় এক্সএমএল আপনার উদাহরণে যোগ করেন তবে এটি পরিষ্কার হতে পারে
ক্রিসপ্রিম

নেভিগেশনআইটেম নির্বাচন করা হয়েছে (চূড়ান্ত মেনু আইটেম মেনু আইটেম) {ডিফল্ট পদ্ধতি ?? আমি এই কোডটি কোথায় করব?
জন

এবং NAV_ITEMS_MAIN কী?
জন

8

আমি নিশ্চিত না যে API 26 (Android 8)এটিতে স্থির করা হয়েছে বা এটি সর্বদা সম্ভব ছিল। আমি এখনও অ্যান্ড্রয়েড প্রোগ্রামিংয়ে নুব আছি। তবে আমি নীচে পিতামাতার গ্রুপগুলি যুক্ত করেছি। অ্যান্ড্রয়েড 6 শারীরিক ফোনে পরীক্ষা করা,

  1. আমার ডিভাইডার আছে
  2. যে কোনও থেকে কোনও আইটেম নির্বাচন করা nav_g1বা nav_g2অন্য আইটেমগুলি অনির্বাচিত করবে।
  3. নেস্টেড গোষ্ঠীগুলির কারণে কোনও অতিরিক্ত প্যাডিং যুক্ত হয়নি।
  4. আমি কোনো না জুড়ে Javaশ্রোতাকে কোড

মেনু কোড

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <group
            android:id="@+id/nav_g1"
            android:checkableBehavior="single">
            <item
                android:id="@+id/nav_1"
                android:icon="@drawable/ic_menu_share"
                android:title="@string/nav_1"/>
            <item
                android:id="@+id/nav_2"
                android:icon="@drawable/ic_menu_share"
                android:title="@string/nav_2"/>
        </group>
        <group
            android:id="@+id/nav_g2"
            android:checkableBehavior="single">
            <item
                android:id="@+id/nav_3"
                android:icon="@drawable/ic_menu_share"
                android:title="@string/nav_3"/>
            <item
                android:id="@+id/nav_4"
                android:icon="@drawable/ic_menu_share"
                android:title="@string/nav_4"/>
        </group>
    </group>
    <item android:title="Actions">
        <menu>
            <item
                android:id="@+id/nav_7"
                android:icon="@drawable/ic_menu_share"
                android:title="@string/nav_7"/>
            <item
                android:id="@+id/nav_8"
                android:icon="@drawable/ic_menu_share"
                android:title="@string/nav_8"/>
        </menu>
    </item>
</menu>

মন্তব্য

  1. এই উত্তরে উল্লিখিত হিসাবে বিভাজকটি দেখানোর জন্য প্রতিটি গ্রুপের একটি স্বতন্ত্র আইডি থাকা দরকার।
  2. অনুযায়ী এই উত্তর স্পেস গুগল মেটারিয়াল ডিজাইন চশমা মিলে করছে।
  3. রয়ে android:checkableBehavior="single"পিতা বা মাতা দলের জন্য প্রয়োজন বোধ করা হয়, যাতে একাধিক নির্বাচিত মেনু আইটেম সমস্যা এই উত্তর (hungryghost মন্তব্য উল্লেখ) ঘটবে না

এবং এখানে স্ক্রিনশট

ডিভাইসের স্ক্রিনের স্ক্রিনশট


5

আমি প্রথম আইটেমের উপরে এবং শেষ আইটেমের পরে ডিভাইডার চেয়েছিলাম। @ নীলেশ সলিউশন ব্যবহার করে আমাকে ডামি মেনু আইটেম যুক্ত করতে হয়েছিল এবং মিথ্যাতে সক্ষম করতে হয়েছিল যা সত্যই নোংরা বলে মনে হয়েছিল। প্লাস আমি যদি আমার মেনুতে অন্য দুর্দান্ত জিনিস করতে চাই?

আমি লক্ষ্য করেছি ন্যাভিগেশনভিউ ফ্রেমলাউট প্রসারিত করেছে যাতে আপনি নিজের কন্টেন্টটিকে ঠিক তেমন ফ্রেমলাউট হিসাবে রাখতে পারেন। আমি তখন একটি খালি মেনু এক্সএমএল সেট করি যাতে এটি কেবল আমার কাস্টম বিন্যাসটি দেখায়। আমি বুঝতে পারি যে এটি সম্ভবত গুগল আমাদের যে পথে নিতে চায় তার বিপরীতে যায় তবে আপনি যদি সত্যিকারের কাস্টম মেনু চান তবে এটি করা সহজ উপায়।

<!--Note: NavigationView extends FrameLayout so we can put whatever we want in it.-->
<!--I don't set headerLayout since we can now put that in our custom content view-->
<android.support.design.widget.NavigationView
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:menu="@menu/empty_menu">

    <!--CUSTOM CONTENT-->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- CUSTOM HEADER -->
        <include
            android:id="@+id/vNavigationViewHeader"
            layout="@layout/navigation_view_header"/>

        <!--CUSTOM MENU-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_below="@+id/vNavigationViewHeader">

            <View style="@style/NavigationViewLineSeperator"/>

            <Button android:text="Option 1"/>

            <View style="@style/NavigationViewLineSeperator"/>

            <Button android:text="Option 2"/>

            <View style="@style/NavigationViewLineSeperator"/>

        </LinearLayout>
    </RelativeLayout>
</android.support.design.widget.NavigationView>

এখানে শৈলী

<style name="NavigationViewLineSeperator">
        <item name="android:background">@drawable/line_seperator</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">1dp</item>
</style>

এবং অঙ্কনযোগ্য

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="@color/white"/>
    <size android:width="100sp"
          android:height="1sp" />
</shape>

এবং মেনু

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
</menu>

সম্পাদনা:

বোতামগুলির পরিবর্তে আপনি টেক্সটভিউটি অঙ্কনযোগ্য সহ ব্যবহার করতে পারেন যা মূল মেনু আইটেমগুলির চেহারা নকল করে:

 <TextView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text="@string/menu_support"
     android:drawableLeft="@drawable/menu_icon_support"
     style="@style/MainMenuText" />

// style.xml
<style name="MainMenuText">
    <item name="android:drawablePadding">12dp</item>
    <item name="android:padding">10dp</item>
    <item name="android:gravity">center_vertical</item>
    <item name="android:textColor">#fff</item>
</style>

1
ধন্যবাদ, দৃশ্যত মেনু আইটেম হিসাবে কাস্টম দর্শন থাকার সবচেয়ে সুবিধাজনক উপায়
জান রাবে

আমি এই সমাধানটিও ব্যবহার করি কারণ এটি আমাকে আরও সহজ আইটেমগুলির কাস্টম ফন্ট সেট করতে এবং ডিভাইডারের রঙ পরিবর্তন করতে দেয়
লুকি

1

সমাধানের জন্য ক্রেডিট জোরাওয়ারের কাছে যাওয়া উচিত, উত্তরটির সদৃশ হওয়ার জন্য দুঃখিত তবে কোনও মন্তব্যে এত ফরম্যাট করা পাঠ্য যোগ করতে পারেনি।

জোরাওয়ারের সমাধানগুলি কাজ করে, কোডটির মতো উন্নতি করা যেতে পারে:

public void onNavigationItemSelected(int groupId) {

    //if an item from extras group is clicked,refresh NAV_ITEMS_MAIN to remove previously checked item
    navigationView.getMenu().setGroupCheckable(NAV_ITEMS_MAIN, (groupId == NAV_ITEMS_MAIN), true);
    navigationView.getMenu().setGroupCheckable(NAV_ITEMS_EXTRA, (groupId == NAV_ITEMS_EXTRA), true);


    //Update highlighted item in the navigation menu
    menuItem.setChecked(true);
}

NAV_ITEMS_MAIN এবং NAV_ITEMS_EXTRA এবং গ্রুপিড কী ??
জন

তারা গ্রুপ_আইডি
মুশতাক জামিল

0

নীলির উত্তর সঠিক, ডাবল চেকিংয়ের একটি ত্রুটি ব্যতীত।

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single" android:id="@+id/grp1">
        <item
            android:id="@+id/nav_register_customer"
            android:icon="@drawable/ic_menu_camera"
            android:checkableBehavior="none"
            android:title="Register Customer" />
    </group>
    <group  android:id="@+id/grp2"
        android:checkableBehavior="single"  >
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:checkableBehavior="none"
            android:title="Slideshow" />
    </group>
</menu>

তাই ব্যবহার

অ্যান্ড্রয়েড checkableBehavior = "একক"

অনন্য আইডি দিয়ে সমস্যার সমাধান করা হবে


0

আপনি যদি গতিশীলভাবে বিভাজক যুক্ত করতে চান তবে আপনি খালি এই জাতীয় সাবমেনু যুক্ত করতে পারেন:

Menu menu = navigationView.getMenu();
menu.addSubMenu(" ").add(" ");

এটি একটি বিভাজক যুক্ত করবে।

ব্যবহার করার সময় সঠিক সূচীতে পাস করার বিষয়ে নিশ্চিত হন menu.getItem(int index)


0

পূর্ববর্তী উত্তরগুলি ছাড়াও যদি আপনি আলংকারিক বিভাজক চান তবে "চেকযোগ্য আচরণ" সমস্যার কারণে একাধিক গোষ্ঠী তৈরি করতে চান না - আপনি আপনার গ্রুপে একই গ্রুপ আইডি নির্ধারণ করতে পারেন।

উদাহরণ:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
    android:id="@+id/group_nav_common" <!-- New group id-->
    android:checkableBehavior="single">

    <item
        android:id="@+id/menu_item_nav_home"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/nav_menu_main" />
    <item
        android:id="@+id/menu_item_nav_articles"
        android:icon="@drawable/ic_art_track_black_24dp"
        android:title="@string/latest_news" />

    <item
        android:id="@+id/menu_item_nav_group_categories"
        android:title="@string/nav_menu_sections">
        <menu>
            <group
                android:id="@id/group_nav_common" <!-- Existing group id -->
                android:checkableBehavior="single">
                <!-- Programmatically populated section -->
            </group>
        </menu>
    </item>

    <item
        android:id="@+id/menu_item_nav_group_sites"
        android:title="@string/nav_menu_sites">
        <menu>
            <group
                android:id="@id/group_nav_common" <!-- Existing group id -->
                android:checkableBehavior="single">
                <item
                    android:id="@+id/menu_item_nav_select_site"
                    android:icon="@drawable/ic_account_balance_black_24dp"
                    android:title="@string/nav_menu_select_site" />
            </group>
        </menu>
    </item>
</group>


0

যদি নির্বাচিত উত্তরটি আপনার পক্ষে কাজ করে না, আপনি onCreateOptionsMenuঅনন্য গ্রুপ আইডি দেওয়ার পাশাপাশি এটি যুক্ত করার চেষ্টা করতে পারেন :

if (Build.VERSION.SDK_INT >= 28) {
    menu.setGroupDividerEnabled(true)
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.