DrawLayout控件是Google提供的一種實現側滑效果的控件,使用該控件可以很容易地實現側滑菜單的效果,因爲是系統自帶的,
所以不需要導入第三方的框架。
我們直接看下activity_main.xml文件吧:
<?xml version="1.0" encoding="utf-8"?>
<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.support.v4.widget.DrawerLayout
android:id="@+id/drawLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--內容區-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DrawLayout內容區" />
</RelativeLayout>
<!-- android:layout_gravity="start" 設置界面左邊邊顯示-->
<LinearLayout
android:id="@+id/leftLayout"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#f00"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="左邊的按鈕" />
</LinearLayout>
<!-- android:layout_gravity="end" 設置界面右邊顯示-->
<LinearLayout
android:id="@+id/rightLayout"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="#0f0"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="右邊的按鈕" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
這樣就可以實現側滑菜單效果了,當然我們也可以在MainActivity中設置其相應的監聽事件:
package com.example.administrator.myapplication02;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private DrawerLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
layout = (DrawerLayout) findViewById(R.id.drawLayout);
layout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
Toast.makeText(MainActivity.this, "打開側邊欄了", Toast.LENGTH_SHORT).show();
}
@Override
public void onDrawerClosed(View drawerView) {
Toast.makeText(MainActivity.this, "關閉側邊欄了", Toast.LENGTH_SHORT).show();
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
}
}
運行結果: