View 如何在android中查找视图位置

View 如何在android中查找视图位置,view,android-widget,View,Android Widget,如何在android中找到视图位置 为了得到这个位置,我使用了view.getLeft(),view.getRight(),view.getTop()和view.getBottm()。但是这些方法返回0(零)。调用setContentView()方法后,我使用了这些方法 如果有人知道获取视图位置的代码,请帮助我 这在2.2中对我起了作用: custRegScrollView.smoothScrollTo(0, activity.findViewById(labelId)

如何在android中找到视图位置

为了得到这个位置,我使用了
view.getLeft()
view.getRight()
view.getTop()
view.getBottm()
。但是这些方法返回
0
(零)。调用
setContentView()
方法后,我使用了这些方法


如果有人知道获取视图位置的代码,请帮助我

这在2.2中对我起了作用:

custRegScrollView.smoothScrollTo(0, activity.findViewById(labelId)
            .getTop() - (viewHeight / 2) + offset);
您要查找的代码位是:

int viewPos = activity.findViewById(R.id.myView).getTop();
这将返回视图“矩形”中的以下位置

即视图顶部的Y(垂直)坐标

请注意,这是基于您使用的布局类型的上下文。这是在ScrollView中测试的,如上所示


希望这有帮助

您在哪里调用了
getLeft()
getTop()
等?在调用
onMeasure()
之前,不会设置视图的位置,因此这些方法在此之前将返回0
onCreate()
是在
onMeasure()
之前调用的,因此调用
getLeft()
onCreate()
中没有多大用处。您可能希望将代码移动到
onMeasure()
onResume()
。但是,如果您确实覆盖了onMeasure(),请注意,它通常会被多次调用。

什么具体不起作用?您是否尝试过单步遍历代码并查看这些方法是否返回正确的值?它是否抛出异常?
 >______
  |    |
  |    |
  |____|