ScrollView当显示超出当前页面时自动移动到最底端【转】
本文转载自:http://gundumw100.iteye.com/blog/1162964
- private ScrollView mScrollView;
 - private LinearLayout mLayout;
 - private final Handler mHandler = new Handler();
 - mScrollView = (ScrollView)findViewById(R.id.scroll);
 - mLayout = (LinearLayout)findViewById(R.id.linearlayout);//linearlayout外层为 scroll
 - mHandler.post(mScrollToBottom);
 - private Runnable mScrollToBottom = new Runnable() {
 - @Override
 - public void run() {
 - // TODO Auto-generated method stub
 - int off = mLayout.getMeasuredHeight() - mScrollView.getHeight();
 - if (off > 0) {
 - mScrollView.scrollTo(0, off);
 - }
 - }
 - };
 
在Android,一个单独的TextView是无法滚动的,需要放在一个ScrollView中。ScrollView提供了一系列的函数,其中fullScroll用来实现home和end键的功能,也就是滚动到顶部和底部。
但是,如果在TextView的append后面马上调用fullScroll,会发现无法滚动到真正的底部,这是因为Android下很多(如果不是全部的话)函数都是基于消息的,用消息队列来保证同步,所以函数调用多数是异步操作的。当TextView调用了append会,并不等text显示出来,而是把text的添加到消息队列之后立刻返回,fullScroll被调用的时候,text可能还没有显示,自然无法滚动到正确的位置。
解决的方法其实也很简单,使用post:
- final ScrollView svResult = (ScrollView) findViewById(R.id.svResult);
 - svResult.post(new Runnable() {
 - public void run() {
 - svResult.fullScroll(ScrollView.FOCUS_DOWN);
 - }
 - });
 
Android将ScrollView移动到最底部 
scrollTo方法可以调整view的显示位置。 
在需要的地方调用以下方法即可。 
scroll表示外层的view,inner表示内层的view,其余内容都在inner里。 
注意,方法中开一个新线程是必要的。 
否则在数据更新导致换行时getMeasuredHeight方法并不是最新的高度。
- 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);
 - }
 - });
 - }
 
ScrollView当显示超出当前页面时自动移动到最底端【转】的更多相关文章
- 打开jsp页面时,显示空白页。
		
打开jsp页面时,显示空白页. #foreach($e in $listPlanItem) #set($listPlanDetail=$!e.get(2)) < ...
 - 设置一个div网页滚动时,使其固定在头部,当页面滚动到距离头部300px时,隐藏该div,另一个div在底部,此时显示;当页面滚动到起始位置时,头部div出现,底部div隐藏
		
设置一个div网页滚动时,使其固定在头部,当页面滚动到距离头部300px时,隐藏该div,另一个div在底部,此时显示: 当页面滚动到起始位置时,头部div出现,底部div隐藏 前端代码: <! ...
 - Android 解决ScrollView下嵌套ListView进页面不在顶部的问题
		
以下为整理: 方法1 刚开始还可以,后来再调试时就不行了. 为了解决scrollview和listview冲突 设置了listview的高度 结果进页面就不是在顶部了 . 解决方案1:Scrol ...
 - Oracle Sales Cloud:管理沙盒(定制化)小细节1——利用公式创建字段并显示在前端页面
		
Oracle Sales Cloud(Oracle 销售云)是一套基于Oracle云端的CRM管理系统.由于 Oracle 销售云是基于 Oracle 云环境的,它与传统的管理系统相比,显著特点之一便 ...
 - ASP.NET Core中显示自定义错误页面-增强版
		
之前的博文 ASP.NET Core中显示自定义错误页面 中的方法是在项目中硬编码实现的,当有多个项目时,就会造成不同项目之间的重复代码,不可取. 在这篇博文中改用middleware实现,并且放在独 ...
 - ASP.NET Core中显示自定义错误页面
		
在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app. ...
 - 页面显示(pageshow)和页面隐藏(pagehide)事件
		
Firefox和Opera有一个新特性,名叫“往返缓存”(back-forward cache,或bfcache),可以在用户使用浏览器的“后退”和“前进”按钮时加快页面的转换速度.这个缓存中不仅保存 ...
 - jsp编写页面时常见错误提示
		
jsp编写页面时常见错误提示 404-->未部署web应用 500-->代码有问题 无法显示网页-->未启动tomcat webRoot-->URL输入有误 web-inf-- ...
 - iPhone 上显示桌面版页面
		
在用智能电话的浏览器打开页面时,很多网站会根据浏览器的屏幕大小自动调整显示布局,或跳转到移动设备使用的专用面上来优化显示.一些情况下,这种优化可能不是用户希望的,比如优化后的页面缺少桌面版的功能. 这 ...
 
随机推荐
- java中的占位符\t\n\r\f
			
\t 相当于tab,缩进\n NewLine 换行 System.out.println("aaa\tbbb"); //aaa bbbSystem.out.println(&quo ...
 - 【音乐App】—— Vue-music 项目学习笔记:推荐页面开发
			
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 上一篇总结了项目概述.项目准备.页面骨架搭建.这一篇重点梳理推荐页面开发.项目github地址:https://github.com/66We ...
 - 【前端GUI】—— 前端设计稿切图通用性标准
			
前言:公司在前端组和视觉组交接设计稿切图的时候,总会因为视觉组同事们对前端的实现原理不清楚而出现各种问题,在用的时候还得再次返工,前端组同事们一致觉得应该出一份<设计稿切图通用性标准文件> ...
 - 粗略。。Java项目设计模式之笔记----studying
			
设计模式 设计模式:解决这个问题的一种行之有效的思想. 设计模式:用于解决特定环境下.反复出现的特定问题的解决方式. 设计模式学习概述 ★ 为什么要学习设计模式 1.设计模式都是一些相对优秀的解决方式 ...
 - postman+newman+jenkins环境部署
			
postman+newman+jenkins 环境部署 2017年4月27日 14:33 阅读 11 新浪博客 1.postman: http://itfish.net/article/59864.h ...
 - mybatis技术文章
			
http://legend2011.blog.51cto.com/3018495/1600478
 - 转:DDR中端接技术基本概念
			
DDR中端接技术基本概念 版权声明:转载请注明出处:http://blog.csdn.net/lg2lh https://blog.csdn.net/lg2lh/article/details/90 ...
 - 团队项目的Git分支管理规范
			
原文地址: http://blog.jboost.cn/2019/06/17/git-branch.html 许多公司的开发团队都采用Git来做代码版本控制.如何有效地协同开发人员之间,以及开发.测试 ...
 - 配置Spring的用于解决懒加载问题的过滤器
			
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" ...
 - oauth学习
			
https://www.cnblogs.com/blowing00/p/4524132.html