Android滑出菜单和悬浮按钮的实现

本文介绍了如何在Android应用中实现滑动菜单和悬浮按钮。使用DrawerLayout和NavigationView组件轻松创建滑动菜单,通过设置 Gravity 和点击事件完成菜单功能。悬浮按钮则通过在布局中添加FloatingActionButton并设置其属性来实现。
摘要由CSDN通过智能技术生成

背景

  现在的大部分安卓应用都有用到悬浮按钮和滑出菜单,比如我们手机上的记事本用到了悬浮按钮,qq,网易云音乐等用到了滑出菜单,而且这两个功能用上的话也会让你的app给人的感觉好一点。

效果图如下:

滑动菜单

  普通的菜单都是放在toolbar上,但是那样会让我们的 app看起来很难看,而所谓的滑动菜单,就是将一些菜单选项隐藏起来,而不是放置在主屏幕上,然后用户就可以通过滑动的方式将菜单显示出来,这种方式既节省屏幕空间,又实现了良好的动画效果。

  这个功能看起来比较难实现,如果要自己实现的话确实是这样,不过google早就想到这一点了,Google提供了一个DrawerLayout插件,借助这个控件来实现滑动菜单就很方便了。

  DrawerLayout,顾名思义,他是一个布局,该布局中允许开发者放入两个直接子控件,第一个子控件是主屏幕中显示的内容,第二个控件是滑动菜单中显示的内容,如下:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.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/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </FrameLayout>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@drawable/lanhua"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/nav_menu">

    </android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>

  其中的FrameLayout布局就是用来放主屏幕的配置文件的,剩下的这个布局就是显示在滑动菜单的内容了,这边可以写任意的布局文件,上面的这个NavigationView也是谷歌官方的Design Support库中提供的一个控件,具体用法就上面这样,该控件也分为两部分显示,跟手机qq类似,这边需要注意的一个点是 这里控件的layout_gravity必须指定,我们需要告诉DrawerLayout滑动菜单是在屏幕的左边还是右边,指定left表示滑动菜单在左边,指定right表示滑动菜单在右边。这边指定为start,表示会根据系统语言进行判断,如果系统语言是从左往右的,比如英语,汉语,滑动窗口就在左边,如果系统语言是从右往左的,不如阿拉伯语,滑动窗口就在右边。

  下面是他的header文件和menu文件。

<!--nav_header.xml-->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:padding="10dp"
    android:layout_height="180dp">

    <de.hdodenhof.circleimag
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值