2017-02-17 75 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