//依赖
//侧边栏的依赖--需要根据自己的版本进行更改版本
implementation 'com.android.support:design:26.1.0'
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
final DrawerLayout dl = (DrawerLayout) findViewById(R.id.dl);
final ImageView iv = (ImageView) findViewById(R.id.iv);
ImageView iv2 = (ImageView) findViewById(R.id.iv2);
//通过监听控制DrawerLayout显示和隐藏
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//判断是否是打开或关闭状态
/* if (dl.isDrawerOpen(Gravity.LEFT)) {
dl.closeDrawer(Gravity.LEFT);
} else {
dl.openDrawer(Gravity.LEFT);
}*/
dl.openDrawer(Gravity.LEFT);
}
});
//点击侧滑页面的控件实现关闭侧滑页面
iv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dl.closeDrawer(Gravity.LEFT);
}
});
//DrawerLayout的监听
dl.setDrawerListener(new DrawerLayout.DrawerListener() {
/**
* 当抽屉被滑动的时候调用此方法
* arg1 表示 滑动的幅度(0-1)
*/
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// Toast.makeText(MainActivity.this, "onDrawerSlide", Toast.LENGTH_SHORT).show();
}
/**
* 当一个抽屉被完全打开的时候被调用
*/
@Override
public void onDrawerOpened(View drawerView) {
Toast.makeText(MainActivity.this, "onDrawerOpened", Toast.LENGTH_SHORT).show();
}
/**
* 当一个抽屉完全关闭的时候调用此方法
*/
@Override
public void onDrawerClosed(View drawerView) {
Toast.makeText(MainActivity.this, "onDrawerClosed", Toast.LENGTH_SHORT).show();
}
/** 当抽屉滑动状态改变的时候被调用
* 状态值是STATE_IDLE(闲置-0),STATE_DRAGGING(拖拽-1),STATE_SETTLING(固定-2)中之一。
* 抽屉打开的时候,点击抽屉,drawer的状态就会变成STATE_DRAGGING,然后变成STATE_IDLE
* */
@Override
public void onDrawerStateChanged(int newState) {
Toast.makeText(MainActivity.this, "onDrawerStateChanged", Toast.LENGTH_SHORT).show();
}
});
}
}
//main
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/dl"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bwei.drawerLayout.MainActivity">
<!-- 第一个元素是主视图-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimaryDark">
<ImageView
android:id="@+id/iv"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:text="标题"/>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="这是主视图"/>
</LinearLayout>
<!-- 第二个元素是测滑页面-->
<LinearLayout
android:layout_width="350dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/colorAccent">
<ImageView
android:id="@+id/iv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是测滑页面"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>