导航栏 android 中的下拉菜单

问题描述 投票:0回答:2

我正忙于尝试从我在 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;
}

现在我想在计算器选项卡下添加一个下拉菜单,其中我有不同的计算器,可以将用户带到适当的页面

android navigation-drawer
2个回答
2
投票

如果我理解正确,您想在菜单项中显示不同的项目。您可以通过在

<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 OneSecond One。当您单击第一个时,您将看到两个不同的选项,称为1-11-2。我希望这有帮助。

祝你有美好的一天!


0
投票

我也面临着同样的问题。没有显示下拉菜单。

© www.soinside.com 2019 - 2024. All rights reserved.