我正在尝试将导航抽屉添加到我的主要活动中。 在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>
答案 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"
,则会在左侧开始NavigationView
。
android: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"
希望它能正常工作。