android - TextView - 获取可见文本,以及如何将字符串划分为页面?

标签 android textview

我想要做的是将长文本划分为页面,这样当用户点击下一页/上一页按钮时,我可以在一个 TextView 中逐一显示它们。我需要的是知道最后显示的字符索引,但这并不那么简单......

我已经尝试过这个:

int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);

String displayed = textView.getText().toString().substring(start, end);

来自 LINK

但是 getLayout 返回 null

同样使用 getWidth/getHeight 是没有用的,因为它们在“onCreate”函数中返回 0...

感谢您的帮助!

最佳答案

从另一个方向解决问题可能更有意义:您有一个很长的String文本。然后,您决定一页上可以容纳多少内容,并将 String 分解为多个子字符串的数组,每个子字符串对应一个页面。然后,您可以简单地将页面索引存储在某处,并将其用作将整个文本分解为子字符串时创建的 String 数组的索引。

这假设有一种算法可以确定页面中可以容纳多少文本。看看this question .

关于android - TextView - 获取可见文本,以及如何将字符串划分为页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13235665/

相关文章:

Android NFC 和 onNewIntent()

android - 数据绑定(bind) : set property if it isn't null

ios - ScrollView 滚动时如何检查 View 可滚动位置

java - Android 中的对齐文本

android - Textview 卡在布局底部

android - 如何自动调整 TextView 中的文本大小以适应垂直和水平可用空间?

android - java.lang.UnsatisfiedLinkError 更新到Android 5.0后

java - Android 应用程序项目未知错误 2

android - 我怎样才能得到当月的下个月是否有任何API

android - 具有不同重力和高度的单个 TextView 中的两种不同样式