Android开发之使用ViewDragHelper实现侧边栏滑动的效果

本文介绍了如何使用ViewDragHelper在Android开发中实现侧边栏滑动效果,通过实例详细讲解了初始化ViewDragHelper、事件拦截、处理滑动方法以及相关回调的运用,帮助开发者创建自定义滑动布局。
摘要由CSDN通过智能技术生成

Google在其support库中为我们提供了Drawerlayout和SlidingPaneLayout两个布局来帮助开发者实现侧边栏滑动的效果。这两个新的布局大大方便了我们创建自己的滑动布局界面。然而,这两个强大的布局背后,却隐藏着一个功能强大的类——ViewDragHelper。通过ViewDragHelper,基本可以实现各种不同的滑动,拖放需求。

下面通过一个例子,来演示一下如何使用ViewDragHelper创建一个滑动布局。在这个例子中,初始时显示内容界面,当用户手指超过一段距离时,内容界面侧滑显示菜单界面,整个过程如下图所示:


下面看具体的代码是如何实现的:

  • 初始化ViewDragHelper
首先,自然是要初始化ViewDragHelper。ViewDragHelper通常定义在一个ViewGroup的内部,并通过其静态工厂的方法进行初始化,代码如下所示:
mViewDragHelper = ViewDragHelper.create(this, callback);
它的第一个参数是要监听的View,通常需要是一个ViewGroup,即parentView;第二个参数是一个Callback回调,这个回调就是整个ViewDragHelper的逻辑核心。

  • 拦截事件
接下来,要重写事件拦截方法,将事件传递给ViewDragHelper进行处理,代码如下所示:

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return mViewDragHelper.shouldInterceptTouchEvent(ev);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //将触摸事件传递给ViewDragHelper,此操作必不可少
        mViewDragHelper.processTouchEvent(event);
        return true;
    }

  • 处理computeScroll()
使用ViewDragHelper也需要重写computeScroll()方法,因为ViewDragHelper内部也是通过Scroll
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值