滑动菜单

滑动菜单

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;
上一篇:android如何除去actionbar左侧的标题


下一篇:学习ActionBar