本篇文章作为新的类别 “Android经验之谈” 开篇之作,记录实际开发中遇到的比较“奇怪”的问题以及解决方案,不求长篇大论,但求短小精悍,一两句话讲明问题及解决方案,画龙点睛,一语道破天机。
有时候,一句提醒,能让人豁然开朗,少走很多弯路。
案例:阅读软件中用ScrollView嵌套TextView显示章节内容
问题:当滑动ScrollView后(还在惯性滑动中)切换章节内容,并定位到ScrollView底部
此时调用scrollTo(int x, int y)不起作用。
分析原因:由于滑动动画还在继续,scrollTo在执行后效果被滑动动画覆盖,没起作用。
曾苦于一时没有解决方案,未曾找到取消滑动动画的方法,后偶然发现,smoothScrollTo()方法可以打断动画,将
scrollTo()换成smoothScrollTo()方法可正常定位位置,但定位过程有动画要耗费一些时间,不是本想要的快速定位。
经尝试发现以下写法即可满足需求:
- //滚动到原点
- scrollView.scrollTo(0, 0);
- scrollView.smoothScrollTo(0, 0);
此乃纯属偶然发现,想知道为什么,去问谷歌!
在此记录一下我的问题:我想让scrollView回滚到圆点,然后在滚动固定的距离,发现使用scrollTo在某些设备上无效
;使用smoothScrollTo位置会错乱。
使用
scrollRoot.scrollTo(0,0);
scrollRoot.smoothScrollTo(0, 0);
scrollRoot.smoothScrollBy(0, heightDifference);
解决问题。