1

で見たい長いデータがあります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+1、そして、endline+1描かれるべきテキストの正確なオフセットではない値を与えてください。

私のコードの何が問題になっていますか?他に方法はありますか?

4

1 に答える 1

1

最後に、私はそれを機能させました。私のboundedWidthはゼロだったので、なぜ偽のデータを返していたのですか。

于 2013-01-16T06:56:28.720 に答える