1

次の要件を取得します。

  1. 画面の上から下まで、葉が左右に配置されたツリーを構築する必要があります。トウの葉が同じオフセットになるため、葉を ListView に入れることはできません。

  2. 商品の高さがわかりません。

  3. 長さが異なる文字列など、動的コンテンツの高さを事前に計算する必要があります。

質問:

次のように TextView ウィジェットに配置される文字列の高さを事前に計算するにはどうすればよいですか。

   <TextView
    android:id="@+id/note_content"
    android:layout_width="40sp"
    android:layout_height="wrap_content"
    android:maxLines="5" />

ここに画像の説明を入力

4

2 に答える 2

0

textView を作成し、LayoutParams を設定し、テキストを設定し、メジャー メソッドを呼び出して、測定値を読み取ります。ところで、textView ではなくテキストを測定できます ( StaticLayoutを参照)。

すべての「葉の測定」アルゴリズムを実装できるカスタムレイアウトを作成する方がよいと思います。このレッスンを確認してください。カスタムレイアウトはとても簡単です)

于 2013-07-19T12:37:47.980 に答える
0

これを使用して、テキストビューの高さと幅を計算します

    textView.getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener() {
                public void onGlobalLayout() {
                 h=textView.getHeight();
                 w=textView.getWidth();
        textView.getViewTreeObserver()
                            .removeGlobalOnLayoutListener(this);
    }

ただし、xml では textview をラップ コンテンツとして割り当てないでください。値が0になるからです。

于 2013-07-19T12:25:09.923 に答える