NavigationView 与 DrawerLayout 的使用(Kotlin)

背景

DrawerLayout 介绍

DrawerLayout 是一种布局,可以实现两个界面,一个是主屏幕,另一个是通过滑动的方式将一些隐藏的菜单显示出来,最显著的例子便是 Google play store。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"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <主屏幕的布局内容>
        .
        .
        </主屏幕的布局内容>

    <侧边滑动菜单的布局内容
        android:layout_gravity="start" />

</androidx.drawerlayout.widget.DrawerLayout>

注意,滑动菜单中必须指定android:layout_gravity="",这代表该菜单所属的位置在左边还是右边。

NavigationView 介绍

想要实现 Google play store 的滑动菜单的样式,可以使用NavigationView来实现,该控件可以大致分为上下两个部分,上面的区域为HeaderView,下面的区域为具体的菜单选项分布。

实现

文中会使用将图片圆形化的方式展示用户的头像,因此需要在app/build.gradle中添加依赖:

implementation 'de.hdodenhof:circleimageview:3.0.1'

在实现 NavigationView 之前首先准备 menu 与 headerLayout 两个部分

  • menu 实现:

    • 首先为了展示菜单选项左边的图标,首先需要准备好相应的素材,这里使用图标库自带的图标(在 drawable 文件夹上右击新建一个Verctor Asset,再选择Asset Type中的Clip Art,最后点击下面Clip Art右边的图标即可选择自带图标库中的图标)。

    • 右键点击res新建文件夹名为 menu的文件夹,在 menu中新建文件(文件及类型名为:nav_menu.xml),内容为:

      <?xml version="1.0" encoding="UTF-8" ?>
      <menu xmlns:android="http://schemas.android.com/apk/res/android">
          <group android:checkableBehavior="single">
              <item
                  android:id="@+id/myAppAndGames"
                  android:icon="@drawable/ic_baseline_apps_24"
                  android:title="My app &amp; games" />
              <item
                  android:id="@+id/notification"
                  android:icon="@drawable/ic_baseline_notifications_24"
                  android:title="Notification" />
              <item
                  android:id="@+id/subscription"
                  android:icon="@drawable/ic_baseline_subscriptions_24"
                  android:title="Subscription" />
              <item
            
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Kotlin使用 BottomNavigationView,你需要首先在你的布局文件中添加 BottomNavigationView: ```xml <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_navigation_menu" /> ``` 然后,在你的活动或片段中,你可以按照以下步骤设置 BottomNavigationView: 1. 在你的活动或片段中找到 BottomNavigationView 的引用: ```kotlin val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView) ``` 2. 为 BottomNavigationView 设置监听器: ```kotlin bottomNavigationView.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { R.id.menu_item1 -> { // 处理菜单项1的点击事件 true } R.id.menu_item2 -> { // 处理菜单项2的点击事件 true } R.id.menu_item3 -> { // 处理菜单项3的点击事件 true } else -> false } } ``` 3. 当用户点击底部导航菜单项时,根据需要执行相应的操作。你可以根据 `menuItem.itemId` 来区分不同的菜单项。 确保在你的布局文件中创建名为 `bottom_navigation_menu.xml` 的菜单资源文件,并在其中定义底部导航菜单项: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_item1" android:icon="@drawable/ic_menu_item1" android:title="@string/menu_item1" /> <item android:id="@+id/menu_item2" android:icon="@drawable/ic_menu_item2" android:title="@string/menu_item2" /> <item android:id="@+id/menu_item3" android:icon="@drawable/ic_menu_item3" android:title="@string/menu_item3" /> </menu> ``` 记得将 `ic_menu_item1`, `ic_menu_item2`, 和 `ic_menu_item3` 替换为你自己的图标资源,并将 `menu_item1`, `menu_item2`, 和 `menu_item3` 替换为你自己的字符串资源。 这样,你就可以使用 Kotlin 编写 BottomNavigationView 了。希望对你有所帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值