2012-07-10 66 views
1

我知道我可以使用LinearLayout來做到這一點,但我必須使用RelativeLayout,因爲我需要將另一個RelativeLayout錨定到總體佈局的底部,例如「狀態「吧,我希望標題和文本位於狀態欄上方,並與頂部對齊。使用RelativeLayout是我可以使狀態欄正常工作的唯一方法。唯一的問題是標題和文字TextViews彼此重疊的,我需要的文字立即在標題下:使用RelativeLayout重疊的TextViews

<?xml version="1.0" encoding="utf-8"?> 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:paddingTop="10dp" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" 
     >  

      <RelativeLayout 
       android:id="@+id/status" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_alignParentBottom="true" 
       android:paddingTop="10dp" 
       > 
        <TextView 
         android:id="@+id/status" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_centerVertical="true" 
         android:layout_alignParentLeft="true" 
        />  
      </RelativeLayout> 

      <TextView 
       android:id="@+id/title" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@id/status"  
       android:layout_alignParentTop="true" 
      /> 

      <TextView 
       android:id="@+id/text" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/title"  
       android:layout_alignParentTop="true"  
      /> 

    </RelativeLayout> 

</FrameLayout> 

回答

2

可以使用的LinearLayout作爲RelativeLayout的的孩子。

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_alignParentTop="true">  
     <TextView 
      android:id="@+id/title" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
     /> 
     <TextView 
      android:id="@+id/text" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
     /> 
    </LinearLayout> 
0

XML佈局呈現在他們是在「讀」的順序所以,你會想要做這樣的事情:

<?xml version="1.0" encoding="utf-8"?> 

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:paddingTop="10dp" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" 
     >  

      <TextView 
       android:id="@+id/title" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_above="@id/status"  
       android:layout_alignParentTop="true" 
      /> 

      <TextView 
       android:id="@+id/text" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/title"  
       android:layout_alignParentTop="true"  
      /> 

      <RelativeLayout 
       android:id="@+id/status" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_alignParentBottom="true" 
       android:paddingTop="10dp" 
       > 
        <TextView 
         android:id="@+id/status" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_centerVertical="true" 
         android:layout_alignParentLeft="true" 
        />  
      </RelativeLayout> 



    </RelativeLayout> 

</FrameLayout> 

我還包兩個textViews像一個的LinearLayout有人提到過。這會幫助你很多。

希望有所幫助。

0

從文本TextView中刪除android:layout_alignParentTop="true"。這會解決你的問題!