应用程序启动时,导航抽屉始终会膨胀

时间:2017-11-07 05:55:05

标签: android android-layout navigation-drawer

我正在尝试将导航抽屉添加到我的主要活动中。 在activity_main.xml的设计视图中,它应该在活动布局的左侧可见为阴影动画(我不知道我应该在这里使用什么术语:|),在拖动/向右滑动时应该是可见的。 但在我的情况下,它默认覆盖了整个活动,并没有显示活动的实际内容......应该是......

我已经完成了解决方案here,但它对我不起作用。 我的activity_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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.mts3_.p1_d3_app_bar.MainActivity">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <include
        android:id="@+id/app_bar"
        layout="@layout/app_bar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/tv"
         />

</LinearLayout>


    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:menu="@menu/drawer_menu"
        />


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

和drawer_menu.xml(布局文件)如下:

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

    <group android:checkableBehavior="single">
        <item android:title="@string/img1"
            android:id="@+id/img11"
            android:icon="@drawable/pic_1"></item>
        <item android:title="@string/img2"
            android:id="@+id/img22"
            android:icon="@drawable/pic_2"></item>
        <item android:title="@string/img3"
            android:id="@+id/img33"
            android:icon="@drawable/pic_3"></item>
        <item android:title="@string/img4"
            android:id="@+id/img44"
            android:icon="@drawable/pic_4"></item>
    </group>
    <item android:title="@string/social">
        <menu>
            <item android:title="@string/add_to_group"
                android:id="@+id/add_to_group"
                android:icon="@drawable/pic_5"></item>
            <item android:title="@string/share"
                android:id="@+id/share"
                android:icon="@drawable/pic_6"></item>

            <item android:title="@string/group"
                android:id="@+id/group"
                android:icon="@drawable/pic_7"></item>

        </menu>


    </item>


</menu>

2 个答案:

答案 0 :(得分:1)

首先,更改您的身高和宽度android:layout_width="wrap_content"android:layout_height="match_parent"

其次,在android:layout_gravity="left"中设置重力NavigationView

试试这个。

<android.support.design.widget.NavigationView  
    android:id="@+id/navigation_view"  
    android:layout_width="wrap_content"  
    android:layout_height="match_parent"  
    android:layout_gravity="left"   
    app:menu="@menu/drawer_menu"></android.support.design.widget.NavigationView>  

修改

如果您在xml代码中使用android:layout_gravity="left",则会在左侧开始NavigationViewandroid:layout_gravity="left"与`android:layout_gravity =“start``。

相同

如果您在xml代码中使用android:layout_gravity="right",则会在右侧开始NavigationView

在您的代码中使用tools:openDrawer="start",它将显示在Android工作室的预览中。它不会影响您在设备中的显示。

答案 1 :(得分:0)

将以下代码放在Drawerlayout标记

 tools:openDrawer="start"

喜欢以下代码

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

之后在navigationView Tag中实现该代码

  android:layout_gravity="start"

希望它能正常工作。