如何在android中找到视图位置?
要获得我使用view.getLeft()
,view.getRight()
,view.getTop()
和view.getBottm()
的排名。但是这些方法正在返回0
(零)。我在调用setContentView()
方法后使用了这些方法。
如果有人知道获取查看位置的代码,请帮助我。
答案 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()
,请注意它通常会多次调用。