android - एंड्रॉइड में नेविगेशन मेनू में उप-लेवल कैसे बनाएं?




2 Answers

मेरा विश्वास है, मैंने इच्छित प्रभाव संग्रहीत किया है:

पीछे के विचार को clear() करने के लिए clear() मौजूदा मेनू और मेन्यू पर हर बार उपयोगकर्ता क्लिक करने पर मेन्यू को फिर से inflateMenu , जिससे उपमेनू होनी चाहिए। (और वापस पाने पर - बहुत ज्यादा वही करते हैं)

रूट मेनू ( activity_main_drawer.xml ) के रूप में, मैंने इसका उपयोग किया था:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/action_item1"
            android:icon="@drawable/ic_menu_camera"
            android:title="Item 1" />
        <item
            android:id="@+id/action_expand"
            android:icon="@drawable/ic_menu_gallery"
            android:title="Sub Menu to expand" />
    </group>
</menu>

यह सबमेनू ( activity_submenu_drawer.xm ) है:

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

    <item android:title="Go Back"
        android:icon="@drawable/ic_back"
        android:id="@+id/back_to_main"/>

    <item
        android:id="@+id/sub_item1"
        android:icon="@drawable/ic_menu_share"
        android:title="Subitem 1" />
    <item
        android:id="@+id/sub_item2"
        android:icon="@drawable/ic_menu_send"
        android:title="Subitem 2" />
</menu>

MainActivity.xml :

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main" />

</android.support.v4.widget.DrawerLayout>

और यहां मुख्य MainActivity वर्ग है (जो स्विचिंग करते हैं):

public class MainActivity extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    NavigationView navigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        .....
        navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.inflateMenu(R.menu.activity_main_drawer);
        navigationView.setNavigationItemSelectedListener(this);
    }

    ....


    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.action_expand) {
            navigationView.getMenu().clear();
            navigationView.inflateMenu(R.menu.activity_submenu_drawer);
        } else if (id == R.id.back_to_main) {
            navigationView.getMenu().clear();
            navigationView.inflateMenu(R.menu.activity_main_drawer);
        }

        return true;
    }
}

मैंने अपने परीक्षण-प्रोजेक्ट को मेरे ड्रॉपबॉक्स पर अपलोड कर दिया है - इसे बेझिझक देखें

मुझे उम्मीद है यह मदद करेगा

मैं इस तरह एक ही प्रभाव को प्राप्त करना चाहूंगा:

http://mmenu.frebsite.nl/

जब आप दस्तावेज़ / ट्यूटोरियल / समर्थन पर क्लिक करते हैं, तो मेनू उपलेवल मेनू पर जाएंगे। यह एक विस्तार योग्य सूचीदृश्य नहीं है, न ही मूल मेनू शीर्षक के नीचे एक सबमेनू आइटम है

मैंने इस तरह से नेविगेशन दृश्य का उपयोग करके मेनू बनाने की कोशिश की है:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_home"
            android:icon="@drawable/ic_event"
            android:title="Home" />
        <item
            android:id="@+id/nav_profile"
            android:icon="@drawable/ic_dashboard"
            android:title="Perfil" />
    </group>

    <item android:title="More Options">
        <menu>
            <item
                android:icon="@drawable/ic_forum"
                android:title="Forum" />
            <item
                android:icon="@drawable/ic_headset"
                android:title="Headset" />
        </menu>
    </item>
</menu>

समस्या यह है, जब मैं पेरेंट मेनू शीर्षक पर क्लिक करता हूं तो यह sublevel पर नहीं जाता है एंड्रॉइड में इसे कैसे हासिल किया जाए? बहुत बहुत धन्यवाद







Related

android menu navigation navigation-drawer android-menu