Android 为什么';这是导航抽屉的代码吗?

Android 为什么';这是导航抽屉的代码吗?,android,xml,navigation-drawer,Android,Xml,Navigation Drawer,下面是一些创建导航抽屉的代码。问题是抽屉没有正确地出现。抽屉从活动开始时就可见,但仅部分可见,而且不会从侧面滑入或滑出。它只是固定在一个地方。这里怎么了 注意:我通过在styles.xml 活动\u main.xml <?xml version="1.0" encoding="utf-8"?> < android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/an

下面是一些创建导航抽屉的代码。问题是抽屉没有正确地出现。抽屉从活动开始时就可见,但仅部分可见,而且不会从侧面滑入或滑出。它只是固定在一个地方。这里怎么了

注意:我通过在
styles.xml

活动\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<
android.support.v4.widget.DrawerLayout
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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nirvan.navigationexample3.MainActivity">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"></LinearLayout>

   <
   android.support.design.widget.NavigationView
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:id="@+id/nv"
   >


   <ListView
       android:layout_width="200dp"
       android:layout_height="match_parent"
       android:id="@+id/listView"></ListView>

   </android.support.design.widget.NavigationView>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

</TextView>

<
android.support.v4.widget.DrawerLayout
xmlns:android=”http://schemas.android.com/apk/res/android"
xmlns:tools=”http://schemas.android.com/tools"
android:layout\u width=“匹配父项”
android:layout\u height=“match\u parent”
android:paddingBottom=“@dimen/activity\u vertical\u margin”
android:paddingLeft=“@dimen/activity\u水平\u边距”
android:paddingRight=“@dimen/activity\u水平\u边距”
android:paddingTop=“@dimen/activity\u vertical\u margin”
工具:context=“com.example.nirvan.navigationexample3.MainActivity”>
<
android.support.design.widget.NavigationView
android:layout\u width=“包装内容”
android:layout\u height=“match\u parent”
android:id=“@+id/nv”
>

mainActivity.java

package com.example.nirvan.navigationexample3;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity
{

@Override
protected void onCreate(Bundle savedInstanceState)
   {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    ListView ls=(ListView)findViewById(R.id.listView);
    String[] values=
    {"one","two","three","four","five","six","seven","eight"};


    ArrayAdapter<String> adapter=new ArrayAdapter(this, 
    R.layout.item,values);
    ls.setAdapter(adapter);
   }
 }
package com.example.nirvan.navigationexample3;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.support.v7.widget.Toolbar;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类MainActivity扩展了AppCompatActivity
{
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView ls=(ListView)findViewById(R.id.ListView);
字符串[]值=
{“一”、“二”、“三”、“四”、“五”、“六”、“七”、“八”};
ArrayAdapter=新的ArrayAdapter(此,
R.布局、项目、价值);
ls.setAdapter(适配器);
}
}
item.xml

<?xml version="1.0" encoding="utf-8"?>
<
android.support.v4.widget.DrawerLayout
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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.nirvan.navigationexample3.MainActivity">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"></LinearLayout>

   <
   android.support.design.widget.NavigationView
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:id="@+id/nv"
   >


   <ListView
       android:layout_width="200dp"
       android:layout_height="match_parent"
       android:id="@+id/listView"></ListView>

   </android.support.design.widget.NavigationView>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

</TextView>

按如下方式编辑布局文件:

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

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

      <include layout="@layout/nav_header_main"
                    android:id="@+id/my"/>
                <ListView

                    android:layout_weight="7"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:id="@+id/list_view_inside_nav"></ListView>
            </LinearLayout>
        </android.support.design.widget.NavigationView>

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

除了路易斯·费尔南多的回答,别忘了把

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


在XML文件的末尾。

但是为什么
线性布局
应该包含
导航视图
?我的理解是,第一个
线性布局
用于抽屉隐藏时。而
导航视图
包含抽屉的内容。那么为什么要
LinearLayout
将视图括起来呢?如果您想使用列表视图在抽屉菜单中显示选项,您可以使用上面的布局(编辑),那么其余应用程序的xml代码放在哪里呢?我说的是抽屉被藏起来的那部分,请解释一下。它做什么?您缺少抽屉
视图
上相应的
布局
属性。