Android第一行代码——快速入门 Kotlin 编程(12.3 滑动菜单)

本文介绍了如何使用AndroidX库中的DrawerLayout和NavigationView组件快速实现滑动菜单效果,包括设置DrawerLayout的基本用法,通过设置layout_gravity属性控制滑动方向,以及添加Navigationview美化菜单页面,同时讲解了如何处理导航按钮点击事件来展示和关闭滑动菜单。
摘要由CSDN通过智能技术生成

目录

12.3        滑动菜单

12.3.1        DrawerLayout

12.3.2        NavigationView


12.3        滑动菜单

        滑动菜单可以说是 Material Design 中最常见的效果之一了,许多 Google 自家的应用(如 Gmail 、Google Photo 等)具有滑动菜单的功能。虽说这个功能看上去好像挺复杂的,不过借 助Google 提供的各种工具,我们可以很轻松地实现非常炫酷的滑动菜单效果,那么我们马上开 始吧。

12.3.1        DrawerLayout

        所谓的滑动菜单,就是将一些菜单选项隐藏起来,而不是放置在主屏幕上,然后可以通过滑动的方式将菜单显示出来。这种方式既节省了屏幕空间,又实现了非常好的动画效果,是 Material Design 中推荐的做法。

        不过,如果我们全靠自己去实现上述功能的话,难度恐怕就很大了。幸运的是,Google 在 AndroidX库中提供了一个 DrawerLayout 控件,借助这个控件,实现滑动菜单简单又方便。

        先来简单介绍一下 DrawerLayout 的用法吧。首先它是一个布局,在布局中允许放入两个直接 子控件:第一个子控件是主屏幕中显示的内容,第二个子控件是滑动菜单中显示的内容。因此,我们就可以对 activity_main.xml 中的代码做如下修改:

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <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:layot_gravity='start'
        android:background="#FFF"
        android:text="This is menu"
        android:textSize="30sp"/>
</androidx.drawerlayout.widget.DrawerLayout>

        可以看到,这里最外层的控件使用了DrawerLayout 。DrawerLayout 中放置了两个直接子控 件:第一个子控件是FrameLayout ,用于作为主屏幕中显示的内容,当然里面还有我们刚刚定义的Toolbar ;第二个子控件是一个TextView ,用于作为滑动菜单中显示的内容,其实使用什 么都可以,DrawerLayout 并没有限制只能使用固定的控件。

        但是关于第二个子控件有一点需要注意,layout_gravity 这个属性是必须指定的,因为我们 需要告诉 DrawerLayout 滑动菜单是在屏幕的左边还是右边,指定 left 表示滑动菜单在左边,指定right 表示滑动菜单在右边。这里我指定了 start ,表示会根据系统语言进行判断,如果系统语言是从左往右的,比如英语、汉语,滑动菜单就在左边,如果系统语言是从右往左的,比如阿拉伯语,滑动菜单就在右边。

        没错,只需要改动这么多就可以了,现在重新运行一下程序,然后在屏幕的左侧边缘向右拖 动,就可以让滑动菜单显示出来了,如 图12.5 所示。

图12.5        显示滑动菜单界面

        向左滑动菜单,或者点击一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值