Android:Top NavigationView内容消失了

时间:2017-04-21 19:36:56

标签: android navigation navigation-drawer android-navigation-drawer drawer

我将此代码用于导航抽屉

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

        <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"
            android:visibility="visible">
            <include
                layout="@layout/menu"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </android.support.design.widget.NavigationView>

menu.xml文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="ir.app.ir.live24.MainActivity"
    android:clickable="false"
    android:gravity="center"
    android:background="#fff">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView3"
            android:textColor="#000" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView4"
            android:textColor="#000"
            android:layout_weight="0.5" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Text"
            android:id="@+id/textView5"
            android:textColor="#000" />
    </LinearLayout>
</RelativeLayout>

在视图中android studio工作正确: http://i65.tinypic.com/wtvu4k.jpg

但是在发布后的设备中,菜单顶部已经消失: http://i68.tinypic.com/2nu0ub5.jpg

下一个问题:可点击不适用于菜单

请帮帮我

2 个答案:

答案 0 :(得分:1)

您不应该添加菜单布局:在navigationView中,您可以直接添加菜单..使用app:menu="@menu/menu_navigation"

使用此布局:

 <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/menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        app:menu="@menu/menu_navigation"   //menu items in drawer
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:visibility="visible"></android.support.design.widget.NavigationView>

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

现在在res / menu / menu_navigation中添加菜单项,如:

 <?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/profile"
            android:icon="@drawable/profile_icon"
            android:title="Profile" />

        <item
            android:id="@+id/settings"
            android:icon="@drawable/settings_icon"
            android:title="Settings" />

        <item
            android:id="@+id/about_us"
            android:icon="@drawable/about_us"
            android:title="About us" />

    </group>
</menu>

以下是完整的Example

答案 1 :(得分:1)

#问题1:菜单顶部已经消失。

1。android:paddingTop="24dp"添加到menu容器RelativeLayout以显示top菜单TextView

2。android:background="?attr/selectableItemBackground"添加到TextView,以便在ripple effect上显示click

更新menu.xml,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:clickable="false"
    android:gravity="center"
    android:paddingTop="24dp"
    android:background="#fff">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/textView3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="16dp"
            android:text="New Text"
            android:textColor="#000"
            android:background="?attr/selectableItemBackground"/>

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="16dp"
            android:text="New Text"
            android:textColor="#000"
            android:layout_weight="0.5" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="16dp"
            android:text="New Text"
            android:textColor="#000"
            android:background="?attr/selectableItemBackground"/>
    </LinearLayout>
</RelativeLayout>

仅供参考,我已将android:padding="16dp"添加到所有TextView中以提供适当的缩进。

#问题2:点击不适用于菜单。

onClick监听器设置为TextView以处理click个事件:

// From Activity onCreate() method

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ........................
    ...............................

    TextView textView3 = (TextView) findViewById(R.id.textView3);

    textView3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_SHORT).show();
        }
    });
}

<强>输出:

enter image description here

希望这会有所帮助〜