2013/03/03

ListViewのlayout_heightにwrap_contentを使ってはいけない

androidの開発でよく使うListViewのコンポーネントですが、使うときに注意する事があります。

レイアウト指定で、ListViewのlayout_heightの値にwrap_contentの値を使わないことです。

これをwrap_contentとかにしておくと、listviewにつけるadapterのgetView()メソッドが何度も呼び出されて無駄な処理が発生します。

同じListViewでlayout_heightの属性を変えた場合のLogを出してみました。

layout_height="match_parent"のとき

layout_height="wrap_content"のとき

実際にはcountが54まで繰り返し処理されていました。

原因はよくわからないですが、wrap_contentだと高さの値がコンテンツのサイズになるのでそこら辺が関係してるのかなと思います。

ちなみに,「layout_height="0dp" layout_weight="1"」でも 「layout_height="match_parent"」と同じ振る舞いで問題はありませんでした。

0 件のコメント:

コメントを投稿