0

私はこの方法Android: Expand/collapse animationを使用して、リストビュー内に展開可能な線形レイアウトを作成しています。私のリストビュー行には短い説明付きのlinearlayoutが表示されており、このリストビューをクリックすると、AsyncTaskを呼び出してインターネット上の長い説明を取得し、行の非表示のlinearlayoutを膨らませ、展開して受信したデータを表示します.

問題は、ターゲットの高さを拡張中の非表示のリスト ビューに設定すると、すべてが完璧に機能しますが、AsyncTask から受け取るデータの数がわからないため、拡張された非表示の高さを取得する必要があることです。線形レイアウト。

私はすでに試しました:

ウェブでいくつかの資料を読んでいると、画面に描画された後、ビューに高さがあるだけであることがわかりました。では、この高さを展開レイアウトのターゲットとして設定する最良の方法は何ですか?

asyncTask の onPostExecute でレイアウトを拡張および拡張しています。

4

1 に答える 1

2

Runnable をインフレートされたビューに投稿することを検討してください

final View view = findViewById(R.id.something);
view.post(new Runnable()
    {
        @Override
        public void run() {
            Log.d(TAG, "Height = "+view.getHeight());
        }
    });

このランナブルは、ビューが完全に膨張するまでイベント キューに留まるため、getHeight() および getWidth() メソッドはゼロ以外の値を返します。Romain Guy による説明はこちら

于 2013-01-25T11:56:45.290 に答える