我尝试使用以下代码获取片段中使用的列表视图的高度值:
listView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// make sure it is not called anymore
listView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
listView.getHeight();//return zero
}
});
然而它总是返回零。
然后,我尝试了其他人建议的其他解决方案。
listView.post(new Runnable() {
@Override
listView.getHeight();//return zero
}
}
)
它也返回零。
然后,我将listView.getHeight()放在listView.onItemClickListener()中,以确保完全绘制listView。令我惊讶的是,无论此ListView中的项目数是多少,它始终返回相同的值(不为零)。
有没有人对此有解释?
片段膨胀listView.xml
listView.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@+id/listView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:divider="@color/divider_color"
android:dividerHeight="10dp"
android:choiceMode="singleChoice" />
</RelativeLayout>