如何在Android TextView中对文本进行分页

时间:2013-01-05 06:47:29

标签: android text pagination textview

我希望在TextView中看到长数据。我正在尝试使用以下代码进行分页:

TextPaint textPaint = tv.getPaint();
int boundedWidth = tv.getWidth();

StaticLayout layout = new StaticLayout(data, textPaint, boundedWidth , Alignment.ALIGN_NORMAL, 1.0f, 1, false);
layout.draw(new Canvas());

int totalLines = layout.getLineCount();
int currentPageNum = 0;
int topLine = 0;
int bottomLine = 0;

topLine = layout.getLineForVertical( currentPageNum * height );
bottomLine = layout.getLineForVertical( (currentPageNum + 1) * height );

int pageOffset = layout.getLineStart(topLine);
int pageEnd = layout.getLineEnd(bottomLine);

tv.setText(data.subSequence(pageOffset, pageEnd));

但是pageoffsetpageend给了我startline+1endline+1值不是应该绘制的文本的确切偏移量。

我的代码出了什么问题?还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

最后我让它发挥作用。我的boundedWidth为零,这就是为什么它返回错误的数据。