我有这样的布局:
我希望btn1垂直对齐到中心,它下面的元素也会向下推。但是在我将btn1中的android:layout_centerVertical放入后,它与中心垂直对齐,但它下方的元素没有向下推。
布局后我把android:layout_centerVertical =" true"在btn1:
这是我的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 :(得分: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值添加到您的相对布局中,如上所示
答案 1 :(得分: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>
答案 2 :(得分: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>
答案 3 :(得分:0)
只需删除第二个相对布局或将布局高度和宽度设置为 match_parent !