Android TextView垂直滚动,并精准定位到最后一行
文章目录
- 1. 问题提出
- 2.无法精准定位的产生原因
- 3. 解决方案
1. 问题提出
在使用TextView垂直滚动添加内容,并自动定位到最后一行时,往往会出现TextView没有办法精准定位的情况,并且随着内容的增加,定位根本就不对。经过多方查找资料,终于解决现将方法记录如下
2.无法精准定位的产生原因
在测试中,我们发现TextView getLineCount()*getLineHeight() != getHeight()
,因此如果我们按照网上大多数教程的写法
int offset = textView.getLineCount() * textView.getLineHeight();
if (offset > textView.getHeight()) {textView.scrollTo(0, offset - textView.getHeight());
}
这样的话,TextView的内容每增加一行,定位就越不精准。
3. 解决方案
知道了问题所在,我们只需要获取TextView的真实高度即可,如下面的写法:
private int getTextViewHeight(TextView view) {Layout layout = view.getLayout();int desired = layout.getLineTop(view.getLineCount());int padding = view.getCompoundPaddingTop() + view.getCompoundPaddingBottom();return desired + padding;
}
然后这样调用
int offset = getTextViewHeight(textView);
if (offset > textView.getHeight()) {textView.scrollTo(0, offset - textView.getHeight());
}
以上解决方案,来源于:stackoverflow论坛,遇到问题,还是得去国外论坛找答案靠谱。
Android TextView垂直滚动,并精准定位到最后一行相关推荐
- android上垂直跑马灯,android textview 垂直滚动and水平跑马灯
垂直滚动的话就挺简单的.当然了不是自动的垂直滚动.如果是自动的垂直滚动的话还需要自定义.所以如果有需求需要textview 可以垂直滚动的话,那你来这里就对了. 直接贴 代码.就是这么任性. andr ...
- [Android]自定义垂直滚动的广告区
[Android]自定义垂直滚动的广告区View @Author GQ 2016年07月13日 在github上找到一个在项目中常用的自定义控件,封装的不错,垂直滚动带渐入渐出动画. github项目 ...
- Android:TextView 自动滚动(跑马灯) (转)
Android:TextView 自动滚动(跑马灯) TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true" ...
- android 自定义textview 垂直滚动,Android中TextView如何实现水平和垂直滚动
一.只想让TextView显示一行,但是文字超过TextView的长度怎么办? 在开头显示省略号 android:singleLine="true" android:ellipsi ...
- android TextView向上滚动(模仿滚动文字广告效果)
android文字向上滚动效果没有自带的控件,这就需要开发者根据算法精确按照时间和坐标来实现TextView控件的向上移动,从网上找过几个框架,基本都会有bug,于是自己写了一个自定义控件,来实现Te ...
- Android TextView循环滚动弹幕效果
最近做需求要写一个滚动弹幕的特效,要求是一直循环滚动,并且从左边出去部分的要从右边进入. 1.首先想到的是用Android TextView自带的跑马灯效果,设置一下android:e ...
- android 图片垂直滚动字幕,Android 天气预报图文字幕垂直滚动效果
在很多天气或者新闻的应用中,我们都能看到一些字幕滚动的效果,最简单的实现为跑马灯效果,用系统提供的属性即可实现. 复杂一些的就需要自己去用自定义控件实现. 比如 让TextView 实现垂直滚动. 这 ...
- android TextView 垂直自动滚动字幕实现
参考网上一些做法然后进行了修改, 首先继承TextView /*** VerticalScrollTextView.java* 版权所有(C) 2013* 创建者:cuiran 2013-12-9 下 ...
- android TextView实现滚动显示效果
在android中,如果设置了TextView控件为单行显示,且显示的文本太长的话,默认情况下会造成显示不全的情况,这种情况下我们需要设置该控件属性如下: <TextViewandroid:id ...
最新文章
- 一次完整的抓包分析 Reserved TCP/IP Port List
- Spring @Transactional踩坑记
- 174. Dungeon Game 地下城游戏
- 为什么main方法是public static void?
- 考前一个月,不,只剩29天
- 微信小程序数据拼接_微信小程序使用原生WebSokcet实现断线重连及数据拼接
- 深度学习框架排行榜:找工作学TensorFlow,PyTorch搜索量逼近Keras
- python在线编程免费课程-十大python零基础编程在线网课一对一费用多少钱
- JavaScript数据类型的隐式转换
- WinForm开发知识汇总
- MAC设置JDK环境变量
- 中国古语中的十大智慧
- 华三交换机ping不通用户但用户_h3c交换机如何一直 ping【已解决】
- 计算机绘画社团活动教案,电脑绘画社团课教师教案.doc
- 计算机视觉算法实习生:大厂面试经历(百度、京东、滴滴、字节、美团,旷视,快手,小米)
- kvm切换器不了linux系统,KVM切换器使用中最常见故障排除处理
- 001 JAVA知识体系
- Sigmoid 函数的求导过程
- IDEA创建maven项目没有srcmainjava目录问题解决
- 百度世界大会2021:AI链接社会价值
热门文章
- unity2D:对话框Dialog——弹出、渐入渐出
- 点火成功后,她泪流满面!美国可控核聚变背后的华裔女科学家
- LIS3DH(3轴加速度计)使用
- 432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型
- 关于腾讯TBS中,加载失败问题(64位手机无法加载x5)
- 10. 利用vs2017中的lib.exe把def文件生成lib文件
- 解决zabbix页connot connect to database;MariaDB 导入数据时 ERROR 1118 (42000) at line 1278: Row size too larg
- 什么是软件测试?这份工作到底怎么样?
- xadmin界面美化
- 数据库备份与恢复,全备份、增量备份