天天看點

側滑菜單 Drawerlayout navigationView

核心:1将要實作側滑功能的界面的容器設定為Drawerlayout。

2.将主題内容用<include>标簽進行填充

3.側滑中的内容用新控件navigationView填充。

代碼:

帶有drawerLayout的主體代碼

<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/activity_main" />

    <android.support.design.widget.NavigationView
        android:id="@+id/navigation_header_container"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="left"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/headview"
        app:menu="@menu/menu_main">
        >

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


</android.support.v4.widget.DrawerLayout>      
側滑界面上裝填的xml檔案      
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/image"
        android:src="@mipmap/ic_launcher"/>
</LinearLayout>      
主界面xml      
<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" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView android:text="@string/hello_world" android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
      
另外需要注意在Activity中:      
setContentView(R.layout.main_layout);      
在java代碼中控制側滑      
DrawerLayout dl = (DrawerLayout) this.findViewById(R.id.dl_container);
dl.openDrawer(Gravity.LEFT);
dl.closeDrawer(Gravity.RIGHT);      

繼續閱讀