1

アプリに がありviewPagerます。に長いテキストブロックを入れたいviewPager。テキストをスクロール可能にしたくありません。ページに分離または分割し、ユーザーがページを表示すると、残りのテキストが他のページに表示されるようにします。

どうすればこれにアプローチできますか?

4

2 に答える 2

0

Android は (Boring|Static|Dynamic)Layout クラスを使用してテキストを測定およびラップします。これらのクラスはコンストラクタ パラメータとして幅を取り、テキストの合計の高さを計算します。また、行情報を取得する getLineHeight(int line) などのメソッドも提供します。これらの情報に従って文字列オフセットを計算できます。これを行うクラスを作成します。ここで私の答えを参照してください: https://stackoverflow.com/a/30468884/2800351

于 2015-05-26T21:16:02.753 に答える
0

を介して測定されたテキストの寸法に基づいて、多数のフラグメントをインスタンス化できますpublic float measureText (String text)。次に、「画面の寸法をピクセルで取得する」に記載されているように画面を決定します

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

このようにして、必要なフラグメントの数を計算できます。
分割部分について、私が考えることができる最も速い解決策はmeasureText (String text, int start, int end)、テキストを分割する必要がある場所を決定するためのループです。(これにはもっとエレガントな解決策があるかもしれません)

于 2014-03-05T13:57:53.643 に答える