Android自定义侧拉菜单-做一个为自己定制的侧拉控件

Android自定义侧拉菜单-做一个为自己定制的侧拉控件最近在项目开发上有一个侧拉菜单的需求,之前想到的会是android官方提供的DrawerLayout,DrawerLayout 为android 2.3 及以上系统版本提供侧拉的功能实现,但在项目中有露出拖拽标签的需求,入下图这样:这点官方提供的控件似乎并不能满足需求,于是我自己写了个侧拉控件,实现原理与逻辑都十分简单,今天就大家分享一下我基于
摘要由CSDN通过智能技术生成

最近在项目开发上有一个侧拉菜单的需求,之前想到的会是android官方提供的DrawerLayout,DrawerLayout 为android 2.3 及以上系统版本提供侧拉的功能实现,但在项目中有露出拖拽标签的需求,入下图这样:

拖拽标签

这点官方提供的控件似乎并不能满足需求,于是我自己写了个侧拉控件,实现原理与逻辑都十分简单,今天就大家分享一下我基于FrameLayout及ObjectAnimation的侧拉菜单,也算给想要做自订义控件的小伙伴入一下门。 先来看一下侧拉布局的原理图:

侧拉原理,把布局藏在左边,然后拖出来
控件的使用方法

控件的使用方法
<DrwaerPlusLayout>
    <!—中间主体布局-->
    <FrameLayout/>
    <!—侧拉菜单布局-->
    <FrameLayout/>
</ DrwaerPlusLayout>

可以看出来,整个侧拉控件由两个帧布局(FrameLayout)及一个MaskView(就是View, 用于菜单打开时的蒙板效果)组成,实现逻辑(onFinishInflate-> onMeasure-> onLayout->OnTouch()):

  1. 初始化(onFinishInflate),获取控件的配置参数,得到界面上的两个FrameLayout, 初始化蒙板 View;
  2. 拿到了我们需要的三个视图后,接下来就是测量(onMeasure),通过onMeasure传递进来的参数,确定控件绘制的宽高,从而确定各个子视图的宽高;
  3. 布局,确定各个视图的位置,每个视图在中间摆放的位置(这里将侧拉菜单左移或右移出界面一个自身宽度)(控件布局完成);
  4. 为视图添加事件监听(分析需求:侧拉菜单从左侧拉出,侧拉菜单添加触摸事件监听; 蒙板点击后消失, 蒙板视图添加点击事件监听);
  5. 处理侧拉逻辑,以及蒙板点击逻辑;

下面是我实现侧拉控件的思路

发现:在对侧拉菜单的使用中发现,一般的侧拉是视图在横轴方向上的的平移
思考: 1. 平移怎么实现࿱

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值