使用RelativeLayout重叠的TextViews

问题描述:

我知道我可以使用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> 

可以使用的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> 

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有人提到过。这会帮助你很多。

希望有所帮助。

从文本TextView中删除android:layout_alignParentTop="true"。这会解决你的问题!