Android App 侧边栏菜单的简单实现

【Android App 侧边栏菜单的简单实现】幽映每白日,清辉照衣裳。这篇文章主要讲述Android App 侧边栏菜单的简单实现相关的知识,希望能为你提供帮助。
Layout
注意事项想要实现侧边栏,需要配合使用DrawerLayout。因为会用到嵌套布局,所以根布局不能是 ConstraintLayout,最好使用 LinearLayout 布局。
DrawerLayout 布局下再嵌套两个布局,一个放置内容如 LinearLayout,一个放置侧划菜单,这里使用 NavigationView
为了出现侧边栏点击图标和菜单图标,需要自定义一个 ToolBar,放置在内容 Layout 里
重点侧划菜单 NavigationView 一定要设置 android:layout_gravity=" start"
实例

< ?xml version=" 1.0" encoding=" utf-8" ?> < LinearLayout 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" tools:context=" .ebook.EbookActivity" > < androidx.drawerlayout.widget.DrawerLayout android:id=" @+id/drawer_ebook" android:layout_width=" match_parent" android:layout_height=" match_parent" android:orientation=" vertical" > < LinearLayout android:layout_width=" match_parent" android:layout_height=" match_parent" android:orientation=" vertical" > < androidx.appcompat.widget.Toolbar android:id=" @+id/main_menu_ebook" android:layout_width=" match_parent" android:layout_height=" wrap_content" /> < TextView android:id=" @+id/bookContent" android:layout_width=" match_parent" android:layout_height=" wrap_content" /> < /LinearLayout> < com.google.android.material.navigation.NavigationView android:id=" @+id/navigation_ebook" android:layout_width=" 230dp" android:layout_height=" match_parent" android:layout_gravity=" start" app:headerLayout=" @layout/navigation_ebook_header" app:menu=" @menu/menu_drawer_ebook" /> < /androidx.drawerlayout.widget.DrawerLayout> < /LinearLayout>

Activity
绑定侧划监听事件
private lateinit var mBinding: ActivityEbookBinding private lateinit var mDrawerToggle: ActionBarDrawerToggleoverride fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBinding = ActivityEbookBinding.inflate(layoutInflater) setContentView(mBinding.root) setSupportActionBar(mBinding.mainMenuEbook) initialData() }private fun initialData(){ //初使化侧边栏监听事件 mDrawerToggle = ActionBarDrawerToggle(this, mBinding.drawerEbook, mBinding.mainMenuEbook, R.string.openDrawerContentDesc, R.string.closeDrawerContentDesc) mDrawerToggle.syncState() //绑定侧边栏监听事件 mBinding.drawerEbook.addDrawerListener(mDrawerToggle) }


    推荐阅读