在LinearLayouts周围包装RelativeLayout

时间:2017-08-09 16:38:41

标签: android xml android-layout layout

我在RelativeLayout内有LinearLayout和5 RelativeLayout个。 LinearLayout表示一行按钮,每个LinearLayout有4个按钮,每个按钮都有定义的宽度和高度。

我的问题是,当我将RelativeLayout的高度设置为wrap_content时,它不会包裹LinearLayout的行,而是像fill_parent一样。有趣的是它用于将RelativeLayout的宽度设置为wrap_content,但不是高度。

    <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:id="@+id/fifthRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/forthRow"
        android:layout_centerHorizontal="true">

        <Button
            android:id="@+id/bChangeBase"
            android:layout_width="85dp"
            android:layout_height="85dp"
            android:background="@drawable/bnb"
            android:onClick="onClickBaseChange" />

        <!--- three more buttons --->            

    </LinearLayout>

    <LinearLayout
        android:id="@+id/firstRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true">

        <Button
            android:id="@+id/bP"
            android:layout_width="85dp"
            android:layout_height="85dp"
            android:background="@drawable/bp" />

        <!--- three more buttons --->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/thirdRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/secondRow"
        android:layout_centerHorizontal="true">

        <Button
            android:id="@+id/b4"
            android:layout_width="85dp"
            android:layout_height="85dp"
            android:background="@drawable/b4"
            android:onClick="onClickB4" />

        <!--- three more buttons --->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/forthRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/thirdRow"
        android:layout_centerHorizontal="true">

        <Button
            android:id="@+id/b7"
            android:layout_width="85dp"
            android:layout_height="85dp"
            android:background="@drawable/b7"
            android:onClick="onClickB7" />

        <!--- three more buttons --->

    </LinearLayout>

    <LinearLayout
        android:id="@+id/secondRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/firstRow"
        android:layout_centerHorizontal="true">

        <Button
            android:id="@+id/b1"
            android:layout_width="85dp"
            android:layout_height="85dp"
            android:background="@drawable/b1"
            android:onClick="onClickB1" />

        <!--- three more buttons --->

    </LinearLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您的布局属性存在冲突。 firstRow android:layout_alignParentBottom="true" wrap_contentGridLayout一起使用会导致问题。每个属性都试图依靠另一个属性来确定视图底部的位置。

此处接受的答案中有更多详细信息:RelativeLayout is taking fullscreen for wrap_content

您是否考虑过使用... [Wed Aug 09 14:55:22 2017] [error] [client x.x.x.x] Empty response header name, aborting request [Wed Aug 09 14:55:32 2017] [error] [client x.x.x.x] Empty response header name, aborting request ...