行数分呼ぶための対処法を先に言うと
ListView の layout_height は match_parent にしなければならない。
と言うことらしいです。
ちなみに、layout_width の方は関係ないようでした。
こちらに記載されています。
http://stackoverflow.com/questions/2618272/custom-listview-adapter-getview-method-being-called-multiple-times-and-in-no-co
気になったのでどのような動きをしているのか getView の呼び元を追ってみました。
<match_parent の場合>
ListAdapter.getView
ListView.obtainView
ListView.makeAndAddView
ListView.fillDown
…
ListAdapter.getView
AbsListView.obtainView
ListView.measureHeightOfChildren
View.onMeasure
…
む?全然違うメソッドから呼ばれているのですね。
さらに呼び元を追ってみると、全く違うロジックをたどってきているようでした。
この辺りを追求していくと大変そうなので、一旦やめておきます。
match_parent を設定して、行数分呼ばれるようになったので良しとします。
0 件のコメント:
コメントを投稿