Android 控制ScrollView滚动的实例详解

 更新时间:2017年10月09日 14:23:24   作者:时之沙  
这篇文章主要介绍了Android 控制ScrollView滚动的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

Android 控制ScrollView滚动的实例详解

在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等,

这里有两种办法,第一种,使用scrollTo():

public static void scrollToBottom(final View scroll, final View inner) { 
 
Handler mHandler = new Handler(); 
 
mHandler.post(new Runnable() { 
public void run() { 
if (scroll == null || inner == null) { 
return; 
} 
int offset = inner.getMeasuredHeight() - scroll.getHeight(); 
if (offset < 0) { 
offset = 0; 
} 
 
scroll.scrollTo(0, offset); 
} 
}); 
} 

第一种实现相对比较麻烦,更推荐使用第二种方式,使用fullScrol()

下面我们看一下这个函数:

scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部

需要注意的是,该方法不能直接被调用因为Android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示,而是在队列中等待处理,虽然很快,但是如果立即调用fullScroll, view可能还没有显示出来,所以会失败,应该通过handler在新线程中更新

handler.post(new Runnable() { 
  @Override 
  public void run() { 
    scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
  } 
}); 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Android基础之使用Fragment控制切换多个页面

    Android基础之使用Fragment控制切换多个页面

    Android官方已经提供了Fragment的各种使用的Demo例子,在我们SDK下面的API Demo里面就包含了Fragment的各种使用例子,需要看Demo的朋友,直接看API Demo那个程序就可以了,不用到处去找。里面分开不同功能,实现了不同的类
    2013-07-07
  • Android源码探究之BaseDexClassLoader的使用

    Android源码探究之BaseDexClassLoader的使用

    今天解决一个插件化问题的时候,竟然发现SO没有正常加载,很怪异,最终排查下来发现竟然是参数传入错误导致的。这就扯到了本文的标题上了,BaseDexClassLoader中的4个参数该如何传入,传入的又是什么呢
    2022-08-08
  • Android ProgressBar 模拟进度条效果的实现

    Android ProgressBar 模拟进度条效果的实现

    这篇文章主要介绍了Android ProgressBar 模拟进度条效果的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Android 仿京东商城底部布局的选择效果(Selector 选择器的实现)

    Android 仿京东商城底部布局的选择效果(Selector 选择器的实现)

    这篇文章主要介绍了Android 仿京东商城底部布局的选择效果(Selector 选择器的实现),需要的朋友可以参考下
    2017-04-04
  • Android App应用启动分析与优化

    Android App应用启动分析与优化

    这篇文章主要针对Android App应用启动的分析与优化为大家进行详细介绍,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Templates实战之更优雅实现自定义View构造方法详解

    Templates实战之更优雅实现自定义View构造方法详解

    本篇文章介绍如何利用Android Studio提供的Live Templates更优雅实现自定义View的构造方法,说句人话就是:简化自定义View构造参数模板代码的编写,实现自动生成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Android客户端与服务端数据加密传输方案详解

    Android客户端与服务端数据加密传输方案详解

    这篇文章主要为大家介绍了Android客户端与服务端数据加密传输方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Android横竖屏幕切换小结

    Android横竖屏幕切换小结

    这篇文章主要介绍了Android横竖屏切换小结的相关资料,需要的朋友可以参考下
    2016-02-02
  • Android开发使用Handler实现图片轮播功能示例

    Android开发使用Handler实现图片轮播功能示例

    这篇文章主要介绍了Android开发使用Handler实现图片轮播功能,涉及Android基于Handler操作图片的相关实现技巧与操作注意事项,需要的朋友可以参考下
    2017-09-09
  • Android实现APP在线下载更新

    Android实现APP在线下载更新

    这篇文章主要为大家详细介绍了Android实现APP在线下载更新的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05

最新评论