2017-02-17 72 views
0

我有一個佈局是這樣的:的Android RelativeLayout的按鈕重疊

Screenshot 1

我想使BTN1垂直對齊到中心和元件下將下面推也。但是,當我把android:layout_centerVertical放在btn1中後,它垂直對齊到中間位置,但是它下面的元素沒有按下。在BTN1 layout_centerVertical = 「真」:

佈局後,我把機器人

Screenshot 2

這是我的xml:

<RelativeLayout 
    android:id="@+id/layout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <RelativeLayout 
     android:layout_centerVertical="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <Button 
       android:id="@+id/btn1" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="1" /> 

     <Button 
       android:id="@+id/btn2" 
       android:layout_centerHorizontal ="true" 
       android:layout_below="@id/btn1" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Some Text 1" /> 



      <Button 
        android:id="@+id/btn3" 
        android:layout_below="@id/btn2" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="Some Text 2" /> 

      <Button 
        android:id="@+id/btn4" 
        android:layout_toRightOf ="@id/btn3" 
        android:layout_alignBottom="@id/btn3" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="Some Text 3" /> 

    </RelativeLayout> 

</RelativeLayout> 

我知道,如果我給你父佈局足夠的高度它會正常工作,但稍後我會將這個表單動態生成。任何方式使它自動下推wrap_content?

+0

線性佈局的簡單方法。只需使用LinearLayout更改第二個RelativeLyout並添加一個屬性anroid:orientation =「vertical」 –

+0

刪除內部的'RelativeLayout' –

回答

0
<RelativeLayout 
    android:id="@+id/layout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <RelativeLayout 
     android:layout_centerInParent="true" 
     android:layout_centerVertical="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <Button 
       android:id="@+id/btn1" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="1" /> 

     <Button 
       android:id="@+id/btn2" 
       android:layout_centerHorizontal ="true" 
       android:layout_below="@id/btn1" 
       android:layout_height="wrap_content" 
       android:layout_width="wrap_content" 
       android:text="Some Text 1" /> 



      <Button 
        android:id="@+id/btn3" 
        android:layout_below="@id/btn2" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="Some Text 2" /> 

      <Button 
        android:id="@+id/btn4" 
        android:layout_toRightOf ="@id/btn3" 
        android:layout_alignBottom="@id/btn3" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="Some Text 3" /> 

    </RelativeLayout> 

</RelativeLayout> 

centerInParent值添加到您的相對佈局如上圖所示

0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/layout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<RelativeLayout 
    android:id="@+id/relativeLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true"> 


</RelativeLayout> 

<Button 
    android:id="@+id/btn1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBaseline="@+id/relativeLayout" 
    android:layout_alignBottom="@+id/relativeLayout" 
    android:layout_centerHorizontal="true" 
    android:text="1" /> 

<Button 
    android:id="@+id/btn2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/relativeLayout" 
    android:layout_centerHorizontal="true" 
    android:text="Some Text 1" /> 


<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/btn2" 
    android:layout_centerHorizontal="true"> 

    <Button 
     android:id="@+id/btn3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Some Text 2" /> 

    <Button 
     android:id="@+id/btn4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@id/btn3" 
     android:layout_toRightOf="@id/btn3" 
     android:text="Some Text 3" /> 

</RelativeLayout> 

0

試試這個,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/layout1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 


     <Button 
      android:id="@+id/btn1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:text="1" /> 

     <Button 
      android:id="@+id/btn2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btn1" 
      android:layout_centerHorizontal="true" 
      android:text="Some Text 1" /> 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btn2" 
      android:layout_centerHorizontal="true"> 

      <Button 
       android:id="@+id/btn3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Some Text 2" /> 

      <Button 
       android:id="@+id/btn4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_toRightOf="@id/btn3" 
       android:text="Some Text 3" /> 
     </RelativeLayout> 

    </RelativeLayout> 
0

只是刪除你的第二個相對佈局或設置佈局的高度和寬度爲match_parent