滑动菜单
DrawerLayout(抽屉布局)
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.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"
>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</FrameLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff"
android:text="Hello,world"/>
</androidx.drawerlayout.widget.DrawerLayout>
这里的layout_gravity用于指示隐藏的菜单在从左还是从右,这里指定start表示是根据系统语言来定的。
添加滑动菜单的导航按钮
如果只是按照上面的方法的话,用户根本不知道还有滑动菜单这个东西,所以我们需要添加一个导航功能来提示用户,在Toolbar中留了一个位置给这个功能(HomeAsUp按钮)。
首先将图标加到Toolbar的这个位置。
drawerLayout=findViewById(R.id.drawer_layout);
if(actionBar!=null){
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
actionBar.setDisplayHomeAsUpEnabled(true);
}
接着,在onOptionItemSelected()中进行处理。
//HomeAsUp按钮的id永远是android.R.id.home
case android.R.id.home:
drawerLayout.openDrawer(GravityCompat.START);
break;