Android:查找ListView的项目渲染高度

时间:2011-10-28 19:19:45

标签: android listview

有没有办法找到ListView项目当前显示在列表中的高度而不在布局xml文件中自己设置?

我试过

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

虽然它最初工作,但在开始新的仿真器会话后,它决定在measure()调用期间抛出Null Pointer Exception。

我正在尝试做的是在程序选择时将短项列表中的项目(只有2或3个完整项目可见)置于中心位置。

1 个答案:

答案 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();
}