文章目录

  • 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垂直滚动,并精准定位到最后一行相关推荐

  1. android上垂直跑马灯,android textview 垂直滚动and水平跑马灯

    垂直滚动的话就挺简单的.当然了不是自动的垂直滚动.如果是自动的垂直滚动的话还需要自定义.所以如果有需求需要textview 可以垂直滚动的话,那你来这里就对了. 直接贴 代码.就是这么任性. andr ...

  2. [Android]自定义垂直滚动的广告区

    [Android]自定义垂直滚动的广告区View @Author GQ 2016年07月13日 在github上找到一个在项目中常用的自定义控件,封装的不错,垂直滚动带渐入渐出动画. github项目 ...

  3. Android:TextView 自动滚动(跑马灯) (转)

    Android:TextView 自动滚动(跑马灯) TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true" ...

  4. android 自定义textview 垂直滚动,Android中TextView如何实现水平和垂直滚动

    一.只想让TextView显示一行,但是文字超过TextView的长度怎么办? 在开头显示省略号 android:singleLine="true" android:ellipsi ...

  5. android TextView向上滚动(模仿滚动文字广告效果)

    android文字向上滚动效果没有自带的控件,这就需要开发者根据算法精确按照时间和坐标来实现TextView控件的向上移动,从网上找过几个框架,基本都会有bug,于是自己写了一个自定义控件,来实现Te ...

  6. Android TextView循环滚动弹幕效果

    最近做需求要写一个滚动弹幕的特效,要求是一直循环滚动,并且从左边出去部分的要从右边进入. ​​​​​​​ 1.首先想到的是用Android TextView自带的跑马灯效果,设置一下android:e ...

  7. android 图片垂直滚动字幕,Android 天气预报图文字幕垂直滚动效果

    在很多天气或者新闻的应用中,我们都能看到一些字幕滚动的效果,最简单的实现为跑马灯效果,用系统提供的属性即可实现. 复杂一些的就需要自己去用自定义控件实现. 比如 让TextView 实现垂直滚动. 这 ...

  8. android TextView 垂直自动滚动字幕实现

    参考网上一些做法然后进行了修改, 首先继承TextView /*** VerticalScrollTextView.java* 版权所有(C) 2013* 创建者:cuiran 2013-12-9 下 ...

  9. android TextView实现滚动显示效果

    在android中,如果设置了TextView控件为单行显示,且显示的文本太长的话,默认情况下会造成显示不全的情况,这种情况下我们需要设置该控件属性如下: <TextViewandroid:id ...

最新文章

  1. 一次完整的抓包分析 Reserved TCP/IP Port List
  2. Spring @Transactional踩坑记
  3. 174. Dungeon Game 地下城游戏
  4. 为什么main方法是public static void?
  5. 考前一个月,不,只剩29天
  6. 微信小程序数据拼接_微信小程序使用原生WebSokcet实现断线重连及数据拼接
  7. 深度学习框架排行榜:找工作学TensorFlow,PyTorch搜索量逼近Keras
  8. python在线编程免费课程-十大python零基础编程在线网课一对一费用多少钱
  9. JavaScript数据类型的隐式转换
  10. WinForm开发知识汇总
  11. MAC设置JDK环境变量
  12. 中国古语中的十大智慧
  13. 华三交换机ping不通用户但用户_h3c交换机如何一直 ping【已解决】
  14. 计算机绘画社团活动教案,电脑绘画社团课教师教案.doc
  15. 计算机视觉算法实习生:大厂面试经历(百度、京东、滴滴、字节、美团,旷视,快手,小米)
  16. kvm切换器不了linux系统,KVM切换器使用中最常见故障排除处理
  17. 001 JAVA知识体系
  18. Sigmoid 函数的求导过程
  19. IDEA创建maven项目没有srcmainjava目录问题解决
  20. 百度世界大会2021:AI链接社会价值

热门文章

  1. unity2D:对话框Dialog——弹出、渐入渐出
  2. 点火成功后,她泪流满面!美国可控核聚变背后的华裔女科学家
  3. LIS3DH(3轴加速度计)使用
  4. 432.4 FPS 快STDC 2.84倍 | LPS-Net 结合内存、FLOPs、CUDA实现超快语义分割模型
  5. 关于腾讯TBS中,加载失败问题(64位手机无法加载x5)
  6. 10. 利用vs2017中的lib.exe把def文件生成lib文件
  7. 解决zabbix页connot connect to database;MariaDB 导入数据时 ERROR 1118 (42000) at line 1278: Row size too larg
  8. 什么是软件测试?这份工作到底怎么样?
  9. xadmin界面美化
  10. 数据库备份与恢复,全备份、增量备份