如何在Android的导航菜单中创建子级别?

用户名

我想达到同样的效果:

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>

问题是,当我单击父菜单标题时,它不会转到子级别。如何在android中实现?非常感谢

康斯坦丁·洛金诺夫(Konstantin Loginov)

我相信,我存档了预期的效果:

在此处输入图片说明

背后的想法是使用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;
    }
}

我已将测试项目上传到我的保管箱-随时查看

希望对您有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在android api级别17设备中获取菜单选项?

来自分类Dev

如何在导航抽屉中创建节-Android

来自分类Dev

如何在wordpress中对齐导航菜单?

来自分类Dev

如何在Android中创建自定义导航抽屉

来自分类Dev

如何在上下文菜单handsontable中创建子菜单?

来自分类Dev

如何使用Codeigniter创建动态导航的子级别?

来自分类Dev

如何在Android中创建列表菜单

来自分类Dev

如何在Android Java中创建半圈可扩展菜单

来自分类Dev

如何通过编程从Android中的导航抽屉中删除子菜单?

来自分类Dev

如何在MaterializeCSS下拉菜单中创建子菜单?

来自分类Dev

如何在下拉菜单中创建子菜单(HTML / CSS)

来自分类Dev

如何在React Native Android中单击导航抽屉菜单上的2个视图之间的导航?

来自分类Dev

如何在Wordpress中创建子菜单?

来自分类Dev

如何在Android中创建自定义导航抽屉

来自分类Dev

如何在上下文菜单handsontable中创建子菜单?

来自分类Dev

如何在Eclips中的android中创建菜单?

来自分类Dev

如何在Android中创建滚动菜单

来自分类Dev

如何在导航菜单中更改项目

来自分类Dev

如何在Opencart Admin中的产品菜单下创建子菜单

来自分类Dev

如何在WPF中创建垂直菜单并使子菜单位于菜单的右侧?

来自分类Dev

如何在Android中实现此导航菜单

来自分类Dev

您如何在android中创建下拉菜单答案?

来自分类Dev

如何在React Native Android中单击导航抽屉菜单上的2个视图之间的导航?

来自分类Dev

如何在Bootstrap的项目菜单中创建子菜单下拉菜单?

来自分类Dev

如何在 Bootrap 导航栏中显示水平子菜单?

来自分类Dev

如何在 Outlook (VSTO) 的上下文菜单中创建动态子菜单

来自分类Dev

导航子菜单创建空白

来自分类Dev

如何在 dotnet 应用程序中创建导航菜单?

来自分类Dev

如何在Android导航菜单中添加“+”按钮

Related 相关文章

  1. 1

    如何在android api级别17设备中获取菜单选项?

  2. 2

    如何在导航抽屉中创建节-Android

  3. 3

    如何在wordpress中对齐导航菜单?

  4. 4

    如何在Android中创建自定义导航抽屉

  5. 5

    如何在上下文菜单handsontable中创建子菜单?

  6. 6

    如何使用Codeigniter创建动态导航的子级别?

  7. 7

    如何在Android中创建列表菜单

  8. 8

    如何在Android Java中创建半圈可扩展菜单

  9. 9

    如何通过编程从Android中的导航抽屉中删除子菜单?

  10. 10

    如何在MaterializeCSS下拉菜单中创建子菜单?

  11. 11

    如何在下拉菜单中创建子菜单(HTML / CSS)

  12. 12

    如何在React Native Android中单击导航抽屉菜单上的2个视图之间的导航?

  13. 13

    如何在Wordpress中创建子菜单?

  14. 14

    如何在Android中创建自定义导航抽屉

  15. 15

    如何在上下文菜单handsontable中创建子菜单?

  16. 16

    如何在Eclips中的android中创建菜单?

  17. 17

    如何在Android中创建滚动菜单

  18. 18

    如何在导航菜单中更改项目

  19. 19

    如何在Opencart Admin中的产品菜单下创建子菜单

  20. 20

    如何在WPF中创建垂直菜单并使子菜单位于菜单的右侧?

  21. 21

    如何在Android中实现此导航菜单

  22. 22

    您如何在android中创建下拉菜单答案?

  23. 23

    如何在React Native Android中单击导航抽屉菜单上的2个视图之间的导航?

  24. 24

    如何在Bootstrap的项目菜单中创建子菜单下拉菜单?

  25. 25

    如何在 Bootrap 导航栏中显示水平子菜单?

  26. 26

    如何在 Outlook (VSTO) 的上下文菜单中创建动态子菜单

  27. 27

    导航子菜单创建空白

  28. 28

    如何在 dotnet 应用程序中创建导航菜单?

  29. 29

    如何在Android导航菜单中添加“+”按钮

热门标签

归档