android七种滑动方法,3种滑动机制;

记得之前在看医生的群英传里面有写到实现安卓中的7种滑动方法如下:

    1、layout方法
    2、offsetLeftAndRight与offsetTopandBottom;
    3、LayoutParams;
    4、scrollTo和scrollBy
    5、Scroller;
    6、属性动画
    7、ViewDragHelper();

但是上面的实现滑动的机制大体上分为如下三种:

    1、内容的移动
    2、布局参数的移动
    3、属性的移动

采用上面三种滑动机制来对一个FrameLayout做一个,向右滑动100px效果分别如下:
这里写图片描述

从效果很容易发现
1、内容移动,通过移动里面的内容来实现滑动,其本身是不会滑动的,也就是我们常说的Scroller;所以TranslationX和left是不会发生变化的;
2、属性滑动,通过修改TranslationX属性来实现移动,也就是我们常说的属性动画;所以其layout的布局参数是不会发生变化的;
3、布局参数滑动:通过修改Left,bottom等布局参数实现的滑动,其属性是不会发生变化的;

为什么属性和布局参数都可以实现滑动,原因:
view.getX()决定这个View的在父容器的位置,而:
view.getX()=view.getTranslationX()+view.getLeft();
所以通过属性和布局参数都是可以让View进行一个滑动的
一般来说,getTranslationX()默认是0;

总结:
对于上面的7中滑动的实现方式分类:

        1、layout方法 :布局参数滑动
        2、offsetLeftAndRight与offsetTopandBottom;:布局参数滑动
        3、LayoutParams;:布局参数滑动
        4、scrollTo和scrollBy:内容滑动
        5、Scroller;:内容滑动
        6、属性动画:属性滑动;
        7、ViewDragHelper();:布局参数的滑动;

如果我们想要滑动的话,该采用那种方式呢?
这里借用艺术探索里面的内容:

1、内容滑动: 操作简单,多用于view内部的滑动
2、属性滑动:操作简单,实现没有交互的view和实现复杂的动画效果;
3、布局参数的滑动:操作复杂,适合有有交互的View

android系统原生的控件ScrollView我们查看源码可以知道,其实现的滚动采用的是内容滚动;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值