1

だから私はこれを持っています:

...<!--Stuff above-->
<ListView 
     android:id="@+id/reminders_list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"></ListView>
...<!--More stuff below-->

私の問題は、スペースがなくなるとアダプターがビューを追加しないため、行を追加しようとすると機能しないことです。少なくともこの場合。これは、動的にサイズを変更する必要があることを意味します。質問はこれを行う方法ですか?サイズ変更以外のことが可能な場合は、むしろそれを行います。前もって感謝します。

4

2 に答える 2

5

問題はあなたにありますandroid:layout_height="wrap_content"

高さを wrap_content として設定すると、最初の 3 行のみが表示され、残りは無視されます。として作ってみてください。android:layout_height="fill_parent"

Romain Guy (Google エンジニアが UI ツールキットに取り組んだ) が彼の投稿で述べたように

幅を wrap_content に設定することで、ListView の幅をその子の幅と同じにすることができます。したがって、ListView はそのアイテムを測定し、アダプタで getView() を呼び出す必要があるアイテムを取得する必要があります。これは、レイアウト パスの数、親レイアウトの動作などに応じて、数回発生する可能性があります。

したがって、ListView のレイアウトの幅またはレイアウトの高さを wrap_content に設定すると、ListView はそれに接続されているすべてのビューを測定しようとしますが、これは間違いなくあなたが望むものではありません。

注意: ListViews または GridViews に対して常に wrap_content を設定することは避けてください。詳細については、リストビューの世界について説明しているこのGoogle I/O ビデオを参照してください。

リスト ビュー Link_1 に行を動的に追加する

リスト ビュー Link_2 に行を動的に追加する

リスト ビュー Link_3 に行を動的に追加する

リスト ビューへの行の動的追加 Link_4

于 2012-07-10T04:57:01.637 に答える
2

List Adapter に要素を追加するときは、そのnotifyDataSetChanged()メンバー関数を呼び出して、アタッチされたオブザーバー (ListView など) にデータが変更されたことを通知し、データが更新されるようにする必要があります。

于 2012-07-10T04:59:46.057 に答える