我的菜单隐藏了,虽然我定义了它

时间:2017-10-01 10:45:11

标签: java android xml

这是我的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/navigation_home"
    android:icon="@drawable/ic_home_black_24dp"
    android:title="@string/title_home" />

<item
    android:id="@+id/navigation_dashboard"
    android:icon="@drawable/ic_dashboard_black_24dp"
    android:title="@string/title_dashboard" />

<item
    android:id="@+id/navigation_notifications"
    android:icon="@drawable/ic_notifications_black_24dp"
    android:title="@string/title_notifications" />

</menu>

我的Java代码:

private BottomNavigationView.OnNavigationItemSelectedListener 
    mOnNavigationItemSelectedListener
    = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
            case R.id.navigation_home:
             //   mTextMessage.setText(R.string.title_home);
                return true;
            case R.id.navigation_dashboard:
            //    mTextMessage.setText(R.string.title_dashboard);
                return true;
            case R.id.navigation_notifications:
          //      mTextMessage.setText(R.string.title_notifications);
                return true;
        }
        return false;
    }

};

当我运行此代码时,我无法显示菜单。 我搜索了一些例子,但我发现需要正确的代码!

我无法理解我的问题是什么?

2 个答案:

答案 0 :(得分:0)

您必须为导航视图设置菜单,您可以在NavigationView属性中执行此操作。

<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"
        app:menu="@menu/activity_main_drawer" />

不要忘记添加命名空间

xmlns:app="http://schemas.android.com/apk/res-auto"

答案 1 :(得分:0)

由于它是BottomNavigationView,您需要将其放在Activity的XML布局中。改编自here,您可以使用以下代码:

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"

 <android.support.design.widget.BottomNavigationView
     android:id="@+id/navigation"
     android:layout_width="match_parent"
     android:layout_height="56dp"
     android:layout_alignParentBottom="true"
     app:menu="@menu/my_navigation_items" />

其中my_navigation_items指向您在问题中包含的XML菜单资源。我放了layout_alignParentBottom="true",但这只有在父级是活动中的顶级视图时才有效。我会将两个xmlns所需的命名空间放在文档的顶部。