getLocationOnScreen返回错误的值

时间:2015-01-03 08:10:34

标签: android android-layout

我将以下3个包裹在RelativeLayout中(忽略visibility =“gone”)。

<ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"
    android:layout_marginLeft="10dip"
    android:visibility="gone"/>

<ImageView
    android:id="@+id/img2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:visibility="gone"/>

<ImageView
    android:id="@+id/img3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher"
    android:layout_marginLeft="60dip"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="100dip"
    android:visibility="gone"/>

当我致电view.getLocationOnScreen(pos);

我为pos[0]取回0,为pos[1]取回219,即使它们都不在那些(x,y)坐标处。令人费解的是,每个ImageView都给我相同的值,特别是考虑到它们位于不同的位置。为什么会这样?

1 个答案:

答案 0 :(得分:3)

在您的布局中,所有图像视图都处于“消失”状态。因此getLocationOnScreen()方法返回左上角位置。

如果您想获取视图的确切位置,请根据您的要求将其可见性更改为“隐身”或“可见”。