我正在努力完成一项任务,但在浪费了这么多时间后,我还没有得到任何解决方案。
问题:我正在处理新闻应用程序,具有翻转效果。应用程序在第一页上显示新闻内容,当用户在屏幕上从下到上滑动时,新的翻页将打开,剩下的新闻文本内容将在下一次翻转时显示。
问题是,我在文本视图的第一个屏幕上设置了初始文本新闻,但是当用户滑动以获取更多新闻时,我无法检测到我在第一个文本上显示了多少文本数据,以及我有多少剩余的文本数据将在下一次翻转时设置。
我多次搜索是否有任何函数可以在文本视图中获取可见文本,但是没有解决方案,有些逻辑存在,但它们对我不起作用。
感谢。
答案 0 :(得分:0)
public int getEllipsisStart (int line)
返回要椭圆化的第一个字符的偏移量, 相对于线的起点。 (如果行的开头那么0 是椭圆化的,而不是getLineStart()。)
这意味着您可以查看您的文字是否已被椭圆化,或者不是这样:
int ellipsisStart = mTextView.getLayout().getEllipsisStart() > 0;
if (ellipsisStart > 0) {
// your text has been ellipsized
// your text for the next page should be
// String nextPageText = myString.subString(ellipsisStart);
} else {
// your text fits on the first page
}
但请记住,在设置布局之前,getLayout()将返回null,因此您可以使用ViewTreeObserver来确定布局是否已布局。
ViewTreeObserver observer = mTextview.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Layout layout = textview.getLayout();
if ( layout != null) {
// get your ellipsisStart
}
}
});