0

我有一个主要布局,其中包含两个内部布局。我将包含的布局的宽度指定为 match_parent 但它们不占据父级的整个宽度。

我可能在每个内部 LinearLayout 中有更多组件,例如三个左按钮和三个右按钮。下面是我的代码的简化示例

请参见下面的示例: main_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="5dp"
    android:baselineAligned="false"
    android:orientation="vertical" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.95" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_weight="0.8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp" >

            <include layout="@layout/child_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_weight="0.2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp" >

            <include layout="@layout/child_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </TableRow>
    </TableLayout>

    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="50dp"
         android:layout_weight="0.05"
         android:gravity="center"
         android:orientation="vertical">  

        <Button
           android:layout_width="80dp"
           android:layout_height="40dp"
           android:textSize="14sp"
           android:textStyle="bold"
           android:text="Bottom" />
    </LinearLayout>

</LinearLayout>

child_layout

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/leftLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:orientation="vertical" >

        <Button
            android:layout_width="80dp"
            android:layout_height="40dp"
            android:textSize="14sp"
            android:textStyle="bold"
            android:text="Left" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/rightLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="vertical" >

       <Button
           android:layout_width="80dp"
           android:layout_height="40dp"
           android:textSize="14sp"
           android:textStyle="bold"
           android:text="Right" />
    </LinearLayout>

</RelativeLayout>

请注意,图像中的左右按钮是重叠的。在此处输入图像描述. 如何扩展包含的布局以填充父级的整个宽度,以便左右按钮出现在左右两侧。谢谢你。

4

2 回答 2

0

在您的child layout中,取出您的LinearLayouts然后将它们分配给父母的左右

    <Button
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:textSize="14sp"
        android:textStyle="bold"
        android:text="Left"
        android:layout_alignParntLeft="true" />


   <Button
       android:layout_width="80dp"
       android:layout_height="40dp"
       android:textSize="14sp"
       android:textStyle="bold"
       android:text="Right" 
       android:layout_alignParntRight="true"/>

如果我明白你想要什么,那么这应该可以。这将使它们位于左侧和右侧,但取决于您是否希望它们位于同一“行”或彼此上方或下方,那么您可以设置其他属性

相对布局

LinearLayout在需要时可以非常简单和有用,但使用RelativeLayoutcan 经常消除嵌套LinearLayout的 s 和无用ViewGroup的 s

于 2013-04-13T16:37:35.677 回答
0

您还可以摆脱几个 LinearLayouts 和 RelativeLayout 并改为这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <Button
       android:layout_width="80dp"
       android:layout_height="40dp"
       android:textSize="14sp"
       android:textStyle="bold"
       android:text="Left" />

    <LinearLayout
       android:layout_width="0dp"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:orientation="vertical" />

    <Button
       android:layout_width="80dp"
       android:layout_height="40dp"
       android:textSize="14sp"
       android:textStyle="bold"
       android:text="Right" />
</LinearLayout>
于 2013-04-13T16:44:43.767 回答