Java 获取ListView高度

Java 获取ListView高度,java,android,listview,android-fragments,android-listview,Java,Android,Listview,Android Fragments,Android Listview,我有一个显示地图和列表视图的片段。地图占据视图的顶部(大约)2/3,列表视图占据剩余的1/3。设置listview后,我似乎无法访问它的高度 我已经在listview上调用了getHeight(),但尚未设置它 是否有一个“onListPopulated”方法或我可以使用的东西来获取设置后的高度 我已经在我的片段中覆盖了oncreate和oncreateview,但到目前为止还没有设置它。Android的布局是两遍的。第一个定义了一些东西,第二个实际执行高度/宽度等操作。如果您试图使用onCre

我有一个显示地图和列表视图的片段。地图占据视图的顶部(大约)2/3,列表视图占据剩余的1/3。设置listview后,我似乎无法访问它的高度

我已经在listview上调用了getHeight(),但尚未设置它

是否有一个“onListPopulated”方法或我可以使用的东西来获取设置后的高度


我已经在我的片段中覆盖了oncreate和oncreateview,但到目前为止还没有设置它。

Android的布局是两遍的。第一个定义了一些东西,第二个实际执行高度/宽度等操作。如果您试图使用onCreate()或onCreateView(0)方法从中获取视图的高度,它们不会看到,因为在这些方法运行时,两个过程尚未完成。相反,您需要在视图上使用.post执行runnable操作,如下所示:

    // use post - runnable to get height of view before it's actually shown
    level3Frame.post( new Runnable() {
        @Override
        public void run() {
            final int halfMargin = level3Frame.getHeight()/2;
            <snip>
        }
    });
//使用post-runnable在实际显示之前获取视图的高度
level3Frame.post(新的Runnable(){
@凌驾
公开募捐{
final int halfMargin=level3Frame.getHeight()/2;
}
});

level3Frame是一个我需要高度的视图。在该视图上创建一个可运行的。布局完成后,发布意味着您可以从现在已完全渲染的视图中获取高度或任何您可能需要的内容。

谢谢。您建议用什么方法放置此视图?正如您所提到的,oncreate或oncreateview太早了,我已经找到了d onResume也太早了。是否有某种“视图已加载”回调?我至少需要支持API级别8。这取决于您是否使用片段(onCreateView)或不使用片段(onCreate)。我使用的是片段,所以onCreateView。如果您喜欢答案,请在左侧选择它,这样我就可以获得学分:)