1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android TextView垂直滚动 并精准定位到最后一行

Android TextView垂直滚动 并精准定位到最后一行

时间:2022-09-03 16:36:43

相关推荐

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论坛,遇到问题,还是得去国外论坛找答案靠谱。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。