2013-10-22 149 views
0

我有一個以標題爲中心的相對佈局和右對齊的取消按鈕。 我想檢查標題是否與取消按鈕重疊,如果是,我將根據它的重疊程度將標題左移。獲取視圖的位置

這是我的XML的外觀:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.app.mobile" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="@dimen/actionBarHeight" 
    android:layout_alignParentTop="true" 
    android:id="@+id/actionbar" 
    android:background="#F8F8F8"> 

    <com.app.mobile.subview.CustomButton android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:id="@+id/cancel_btn" 
     android:text="Cancel" 
     app:typeface="fonts/HelveticaNeue" 
     app:customStyle="Regular" 
     android:textSize="@dimen/titleTextSize" 
     android:textColor="#378BFB" 
     android:background="@android:color/transparent" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="10dp" 
     android:layout_marginLeft="10dp" 
     android:visibility="gone"/> 

    <com.app.mobile.subview.CustomButton android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:id="@+id/share_btn" 
     app:typeface="fonts/HelveticaNeue" 
     app:customStyle="Regular" 
     android:textColor="#378BFB" 
     android:visibility="gone"/> 

    <com.app.mobile.subview.CustomTextView 
     android:id="@+id/title" 
     android:gravity="center" 
     android:layout_centerInParent="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:typeface="fonts/HelveticaNeue" 
     app:customStyle="Medium" 
     android:textSize="@dimen/titleTextSize" 
     android:textColor="#000" 
     android:text="Test Title"/> 
</RelativeLayout> 

而我試圖讓像下面

float xPos = screenTitle.getX(); 
    float titleEnd = xPos + screenTitle.getWidth(); 
    xPos = cancelButton.getX(); 

    if(titleEnd > xPos){ 
     Log.e("Title","Title overlaps cancel button"); 
    } 

cancelButton.getX()將返回我0.0,而標題返回正確的位置值。

1.本是佈局如何與小題

http://i.stack.imgur.com/3TFdg.jpg

+0

2.具有非常大的標題 http://i.stack.imgur.com/8aT2M.jpg 3.這是它是如何應該看起來具有非常大的標題 HTTP://i.stack .imgur.com/YNufR.jpg – Uma

回答

1

它取決於是否在Java代碼中你試圖獲得的getX()

如果Android的價值尚未完成繪製整個佈局,cancelButton尚未繪製,X爲0.0。

我發現,在獲得的onCreate()或onCreateView()的值是很容易的用後可運行和

cancelButton.post(new Runnable() { 
    @Override 
    public void run() { 
      float x = cancelButton.getX(); 

     } 
    }); 

這確保了按鍵已經完全繪製您嘗試使用前值

+0

它工作!謝謝!! – Uma