美文网首页
View的事件体系(二)View的滑动

View的事件体系(二)View的滑动

作者: 小柏不是大白 | 来源:发表于2017-05-10 14:38 被阅读32次

    可通过三种方式实现View的滑动:

    1、通过View本身提供的scrollTo/scrollBy方法来实现滑动

    2、通过动画给View施加平移效果来实现滑动

    3、通过改变View的LayoutParams使得View重新布局从而实现滑动

    一、使用scrollTo/scrollBy

    源码

    scrollBy实际上也是调用了scrollTo方法,实现了基于当前位置的相对滑动

    scrollTo则实现了基于所传递参数的绝对滑动

    在滑动过程中,mScrollX的值总是等于View左边缘和View内容左边缘在水平方向的距离,而mScrollY的值总是等于View上边缘和View内容上边缘在竖直方向的距离。

    其中,view边缘指的是View的位置,由4个顶点组成,view内容边缘是指view中的内容边缘;scrollTo和scrollBy只能改变view内容的位置,不能改变view在布局中的位置。

    mScrollX和mScrollY的单位为像素,并且当view的左边缘在view内容左边缘的右边时,mScrollX为正,反之为负值;当view的上边缘在view内容上边缘下边时,mScrollY为正,反之为负值。也就是说,从左向右滑动,mScrollX为负值,反之为正值;从上往下滑动,mScrollY为负值,反之为正值。

    mScrollX和mScrollY的变换规律事例

    二、动画

    使用动画移动view。主要操作view的translationX和translationY属性,既可以采用传统的view动画,也可以采用属性动画,如果使用属性动画的话,为了能够兼容3.0以下版本,需要采用开源动画库nineoldandroids;

    传统的view动画 属性动画

    view动画并不能真正的改变view的位置,属性动画可以。

    三、改变布局参数

    改变LayoutParams。

    三种方式对比:

    scrollTo/scrollBy:操作简单,适合对view内容滑动

    动画:操作简单,主要适用于没有交互的view和实现复杂的动画效果

    改变布局参数:操作稍微复杂,适用于有交互的view


    相关文章

      网友评论

          本文标题:View的事件体系(二)View的滑动

          本文链接:https://www.haomeiwen.com/subject/cjqitxtx.html