如何在多个页面或活动或片段或翻转中划分大字符串数据

时间:2015-09-21 05:56:32

标签: android android-layout android-fragments

我正在努力完成一项任务,但在浪费了这么多时间后,我还没有得到任何解决方案。

问题:我正在处理新闻应用程序,具有翻转效果。应用程序在第一页上显示新闻内容,当用户在屏幕上从下到上滑动时,新的翻页将打开,剩下的新闻文本内容将在下一次翻转时显示。

问题是,我在文本视图的第一个屏幕上设置了初始文本新闻,但是当用户滑动以获取更多新闻时,我无法检测到我在第一个文本上显示了多少文本数据,以及我有多少剩余的文本数据将在下一次翻转时设置。

我多次搜索是否有任何函数可以在文本视图中获取可见文本,但是没有解决方案,有些逻辑存在,但它们对我不起作用。

感谢。

1 个答案:

答案 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
        }
    }
});