android设置布局滑动,android中view的滑动策略

本文详细介绍了在Android中实现视图滑动的三种方法:scrollTo和scrollBy、使用动画以及改变布局参数。scrollTo和scrollBy的区别在于滑动方式,而动画则分为视图动画和属性动画,后者在交互和效果上更具优势。属性动画在Android 3.0以下需要借助兼容库。改变布局参数直接修改LayoutParams,但不涉及滑动效果。各种方法各有优缺点,适用于不同的场景需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

view的滑动

1.使用scrollTo/scollBy

从源码上看scollBy实际上也是调用了 scollTo方法,两者区别是,scollBy是实现了基于当前位置的相对滑动,scollTo是基于参数的绝对滑动。另外要理解两个参数mScollX和mScollY,mScollX是view内容左边缘和view的左边缘的距离,mScollY是view内容上边缘和view上边缘的距离。另外scrollTo的滑动只能将view的内容进行移动,不能将view本身移动。

2.使用动画

可以采用view动画和属性动画

view动画是针对view的影像做操作,并不能改变view的位置参数,如果希望动画后状态得以保留,必须将fillafter属性设置为true,否则动画后会瞬间恢复到原来状态。

由于只是针对影像做操作,会出现一个问题,给view设置监听以后,动画后单击新位置无法触发onclick事件。但是单击原来位置还会出现。因为在系统眼里这个view根本没有发生改变。这种问题可以在新位置创建一个和目标view一模一样的,动画以后隐藏旧目标,显现新目标。

属性动画不会出现以上问题,但是android3.0以下无法使用属性动画。只能使用动画兼容库nineoldandroids,本质上仍然是view动画。

3.改变布局参数

这种就是直接更改layoutparams。

三种方式优缺点:

scollTo/scollBy:操作简单适合对view内容滑动

动画:针对于android3.0以上的属性动画,是没有太大缺点的,针对于view动画,不能交互

更改参数:操作复杂

弹性滑动

1.使用scoller

原理:在scoller调用startscoll()方法时,会保存相应的参数(滑动起点,滑动距离,滑动时间等等),然后调用invalidate方法,会导致view重绘,然后再view的draw方法中调用computescoll方法,先获取滑动当前的scorllx和scolly。继而调用scoll方法滑动,然后又调用postinvalidate方法,进行第二次重绘。

e53a8898ab86

image.png

每一次重绘距离上次滑动都会有一个时间间隔,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值