activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer"
>
<!--抽屉外的主布局中的内容-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btn_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开抽屉"
android:textSize="25sp"
android:onClick="click"
/>
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:entries="@array/names">
</ListView>
</LinearLayout>
<include layout="@layout/draw_layout"></include>
</android.support.v4.widget.DrawerLayout>
draw_layout.xml文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/lr_drawer" android:background="#ccc" android:layout_gravity="right" > <Button android:id="@+id/btn_cloed" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="关闭抽屉" android:textSize="25sp" android:onClick="click" /> <Button android:id="@+id/btn_click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击" android:textSize="25sp" android:onClick="click" android:layout_centerInParent="true" /> </RelativeLayout>
MainActivity文件
package com.yztc.drawerlayoutdemo; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private DrawerLayout mDrawer; private RelativeLayout rlDrawer; private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv= (ListView) findViewById(R.id.lv); mDrawer= (DrawerLayout) findViewById(R.id.drawer); //动态获得屏幕的宽度 以屏幕宽度的一半作为抽屉的宽度 rlDrawer= (RelativeLayout) findViewById(R.id.lr_drawer); ViewGroup.LayoutParams layoutParams=rlDrawer.getLayoutParams(); layoutParams.width=getResources().getDisplayMetrics().widthPixels/2; rlDrawer.setLayoutParams(layoutParams); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this,"被点击了!",Toast.LENGTH_LONG).show(); } }); } public void click(View view){ switch (view.getId()){ case R.id.btn_open: //根据参数指定的方向打开抽屉 // mDrawer.openDrawer(Gravity.LEFT); //根据参数指定的view打开指定的侧滑 mDrawer.openDrawer(rlDrawer); break; case R.id.btn_cloed: mDrawer.closeDrawer(rlDrawer); // mDrawer.closeDrawer(Gravity.LEFT); break; case R.id.btn_click: Toast.makeText(MainActivity.this,"侧滑中点击了!",Toast.LENGTH_LONG).show(); break; } } }