博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈:Android TextView的append方法与滚动条同时使用
阅读量:6208 次
发布时间:2019-06-21

本文共 1493 字,大约阅读时间需要 4 分钟。

hot3.png

一、在Android,一个单独的TextView是无法滚动的,需要放在一个ScrollView中。

ScrollView提供了一系列的函数,其中fullScroll用来实现FOCUS_UP和FOCUS_DOWN键的功能,也就是滚动到顶部和底部。

如果在TextView的append后面马上调用fullScroll,会发现无法滚动到真正的底部,这是因为Android下很多函数都是基于消息的,用消息队列来保证同步,所以函数调用多数是异步操作的。

有消息队列是异步的,消息队列先滚动到底部,然后textview的append方法显示。所以无法正确滚动到底部。

解决办法:

final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);        if (scrollView != null) {            scrollView.post(new Runnable() {                public void run() {                    scrollView.fullScroll(ScrollView.FOCUS_DOWN);                }        });        }

二、listview与滚动条一起使用,禁止listview的滚动,使用滚动条滚动到listview的底部把上面代码run里面那句换为这个scrollView.scrollTo(0, mlistViewList.getHeight());

三、listview内部高度计算函数

当listview与垂直滚动条一起使用时候,如果只用外部scrollView,而不使用listview滚动。需要下面的函数来计算listview当前高度。

public static void ReCalListViewHeightBasedOnChildren(ListView listView) {        if (listView == null) return;        ListAdapter listAdapter = listView.getAdapter();        if (listAdapter == null) return;        int nTotalHeight = 0;        for (int i = 0; i < listAdapter.getCount(); i++) {            View listItem = listAdapter.getView(i, null, listView);            listItem.measure(0, 0);            nTotalHeight += listItem.getMeasuredHeight();        }                ViewGroup.LayoutParams params = listView.getLayoutParams();        params.height = nTotalHeight + (listView.getDividerHeight()*(listAdapter.getCount()-1));}

PS:对于APP安全检测一般我都会用:

转载于:https://my.oschina.net/u/2455226/blog/509904

你可能感兴趣的文章
工作测试博客
查看>>
golang
查看>>
powershell 中的"pause"
查看>>
实用的rpm网站
查看>>
Openfire3.9.3源代码导入eclipse中开发配置指南(转载)
查看>>
安装ISO系统(原版系统)系统终极方法
查看>>
SharePoint项目中新建类库的错误处理及项目建设中遇到的问题总结
查看>>
Spring Cloud Eureka 入门 (二)服务提供者详解
查看>>
web前端面试总结
查看>>
wxPython python3.x下载地址
查看>>
教你如何在linux 下批量卸载
查看>>
GC Blocks Lost等待事件
查看>>
Apache Prefork、Worker和Event三种MPM简单分析
查看>>
Linux从入门到精通系列之PPTP
查看>>
magento去除子分类的url地址中带有父分类的url key
查看>>
查询指定目录下的文件中是否包含指定字符串
查看>>
关于文件系统权限的管理
查看>>
CentOS 7 firewalld使用简介
查看>>
高可用性、负载均衡的mysql集群解决方案
查看>>
Amazon S3 设置对象的生命周期Lifecycle
查看>>