如何在android中查找视图位置

时间:2011-01-31 06:44:12

标签: view android-widget

如何在android中找到视图位置?

要获得我使用view.getLeft()view.getRight()view.getTop()view.getBottm()的排名。但是这些方法正在返回0(零)。我在调用setContentView()方法后使用了这些方法。

如果有人知道获取查看位置的代码,请帮助我。

2 个答案:

答案 0 :(得分:0)

这在2.2中适用于我:

custRegScrollView.smoothScrollTo(0, activity.findViewById(labelId)
            .getTop() - (viewHeight / 2) + offset);

您正在寻找的代码是:

int viewPos = activity.findViewById(R.id.myView).getTop();

这应该在视图的“矩形”中返回以下位置

 >______
  |    |
  |    |
  |____|

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

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

希望这有帮助!

答案 1 :(得分:0)

你在哪里打电话getLeft()getTop()等?在调用onMeasure()之前,不会设置视图的位置,因此这些方法将在此之前返回0。在onCreate()之前的某个时间调用onMeasure(),因此调用getLeft()onCreate()中没有太大用处。您可能希望将代码移至onMeasure()onResume()。但是,如果覆盖onMeasure(),请注意它通常会多次调用。