2012-02-19 9 views
1

ListViewアイテムセルの高さと幅はどのようになっているのですか?膨らんだ後、getHeight()とgetWidth()は両方とも0を返します。AndroidでListViewのセルレイアウトのサイズを決定する方法は?

私のリストのアダプタのgetView()でセルレイアウトxmlを膨らませると、ビューの高さと幅は(0,0)です。私は、セルのサイズを仮定して、そのサブビューは、セルを返すまで設定されず、自動的にListViewに追加されます。では、ビューとその子供の実際のサイズ情報を取得する方法と場所と場所はどこですか?

ListViewの各行には、ListViewの列を構成する4つのTextViewがあります。私は動的に最適なフォントサイズを決定して、TextViewのすべての数値が収まるようにする必要があります。つまり、最大の文字列をTextViewに収めるために16のtextSizeを使用する必要がある場合、textSize = 16を使用するすべての4つのTextViewにすべての行が必要です。

最長の文字列を見つけるためにすべてのデータを前処理していますが、各TextViewがListViewの行にどのくらいの大きさであるかを調べるだけですが、getView()行内の行と子は(0,0)の高さ/幅を持ちます。

ListViewアイテムセルの高さと幅が正しいため、適切なフォントサイズを判断できるのはどうすればわかりますか?

答えて

1

直ちにレイアウトを膨張させます。このプロセスにはしばらく時間が必要です。内部のキューに格納されたタスクを膨張させ、内部のキューから引き出す時間が必要です。

TextView.postメソッドを使用してください。その後、ある時間後に実際のViewサイズを非同期で取得できます。 Runnable実装はUIスレッドで実行されます。

関連する問題