2011-10-28 5 views
7

現在、リストxmlファイルで自分で設定することなくリストに表示されているアイテムの高さを調べる方法はありますか?Android:ListViewのアイテムレンダリングの高さを確認する

私は

View listItem = listAdapter.getView(currentIndex, null, listView); 
listItem.measure(MeasureSpec.EXACTLY, MeasureSpec.UNSPECIFIED); 
int itemHeight = listItem.getMeasuredHeight(); 

を試みたし、それが最初に働いている間、それは新しいエミュレータセッションを開始した後にmeasure()の呼び出し時にNULLポインタ例外をスローすることを決めました。

私がしようとしているのは、プログラムによって選択されたときに短いリストにアイテムが表示されます(2つまたは3つのアイテムがすべて表示されます)。

+0

は、あなたの質問にエラーを追加します。私は 'listAdapter.getView(currentIndex、null、listView)'がnullを返すと思います。 listItemはnullなので、 'listItem.measure()'を呼び出すとNullPointerExceptionが発生します。 –

+0

カスタムアダプターを使用していますか? 高さは、ビューが描画された直後に計算されるので、カスタムアダプタからこの測定を行う方がよいでしょう。 –

答えて

0

これが私の仕事:

public static int getItemViewHeight(Context context, Adapter adapter, int index) { 
    FrameLayout fakeParent = new FrameLayout(context); 
    View view = adapter.getView(index, null, fakeParent); 
    view.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); 
    return view.getMeasuredHeight(); 
} 
関連する問題