导航栏android中的下拉菜单

时间:2018-06-21 12:59:03

标签: android navigation-drawer

我正忙于尝试从我在android studio中使用的默认导航栏选项创建下拉菜单。我已经读过很多地方需要使用可扩展列表视图,但是我不确定如何实现它,因为我习惯于编码。这是我的menudrawer.xml

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

    <group android:checkableBehavior="single">




        <item
            android:id="@+id/nav_add"
            android:icon="@drawable/ic_playlist_add_black_24dp"
            android:title="Add Products" />

        <item
            android:id="@+id/nav_up"
            android:icon="@drawable/ic_create_black_24dp"
            android:title="Update or delete Products" />

        <item
            android:id="@+id/nav_cus"
            android:icon="@drawable/ic_local_library_black_24dp"
            android:title="Customers" />

        <item android:id="@+id/calc"
            android:icon="@drawable/baseline_tablet_black_18dp"
            android:title="Calculator"/>

--This part under the title Calculator i want a drop down which has different calculator options


    </group>



    <item android:title="Other Functions">
        <menu>

            <item
                android:id="@+id/nav_send"
                android:icon="@drawable/ic_menu_send"
                android:title="Logout" />
        </menu>
    </item>



</menu>

这是我的main.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"
    android:background="@drawable/background"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_emily"
        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_emily"
        app:menu="@menu/activity_emily_drawer" />

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

这是我的.java文件:

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

    if (id == R.id.nav_add) {
        Intent i = new Intent(this,Products.class);
        startActivity(i);
        // Handle the camera action



    } else if (id == R.id.nav_send) {
        Intent jj = new Intent(this,login.class);
        startActivity(jj);

    }
    else if (id == R.id.nav_up) {
        Intent jj = new Intent(this,updelProducts.class);
        startActivity(jj);

    }

    else if (id == R.id.nav_cus) {
        Intent z = new Intent(this,Customer.class);
        startActivity(z);

    }

    else if (id == R.id.calc) {
        Intent jj = new Intent(this, Calc_140_plain.class);
        startActivity(jj);

    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

现在,我想在“计算器”标签下添加一个下拉菜单,在这里我有不同的计算器,可将用户带到适当的页面

1 个答案:

答案 0 :(得分:1)

如果我对您的理解正确,则希望在菜单项中显示其他项。您可以通过使用<menu>内的<item>轻松地做到这一点。

<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">

<item
    android:id="@+id/firstOne"
    android:orderInCategory="1"
    android:title="First One"
    app:showAsAction="ifRoom">
    <menu>
        <item
            android:id="@+id/menuSortNewest"
            android:title="1-1" />
        <item
            android:id="@+id/menuSortRating"
            android:title="1-2" />
    </menu>
</item>

<item
    android:id="@+id/action_refresh"
    android:orderInCategory="2"
    android:title="Second One"
    app:showAsAction="ifRoom"/>
</menu>

例如,上面的代码将显示两个不同的项目,分别是 First One Second One 。单击第一个时,您会看到两个不同的选项,分别为 1-1 1-2 。我希望这会有所帮助。

祝你有美好的一天!