2015-01-03 166 views
1

我有以下3個包裝在RelativeLayout中(忽略可見性=「去」)。getLocationOnScreen返回錯誤的值

<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]和219回0 pos[1]儘管他們都不是那些(X,Y)座標。令人費解的是,每個ImageView都給了我相同的值,特別是考慮到它們位於不同的位置。這是爲什麼發生?

回答

2

在您的佈局中,所有圖像視圖都處於「消失」狀態。所以getLocationOnScreen()方法返回左上角的位置。

如果您想獲取視圖的確切位置,請根據您的要求將其可見性更改爲「不可見」或「可見」。