如何将两个按钮布局为相同尺寸?

时间:2011-09-15 01:19:54

标签: android xml layout android-layout

布局定义如下。基本上我希望两个按钮的宽度相同,但是现在它们的宽度是由它们显示的字符串决定的,有没有更好的方法来解决这个问题,使按钮的宽度相同,按钮+ EditText组合填充屏幕的宽度?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/editorlinearlayout" 
    android:orientation="vertical"
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent"
    android:gravity="center">

    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button android:id="@+id/setNameBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" Set Item Name "/>
        <EditText android:id="@+id/nameTxtBox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <Button android:id="@+id/setGroupBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Set Group Name"/>
        <EditText android:id="@+id/groupTxtBox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout>

修改: 我已尝试使用如下所示的TableLayout,但现在EditText不会填充屏幕的其余部分。请参阅下面的图像和布局。

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

    <TableRow>
        <Button android:id="@+id/setNameBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" Set Item Name "/>
        <EditText android:id="@+id/nameTxtBox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </TableRow>
    <TableRow>
        <Button android:id="@+id/setGroupBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Set Group Name"/>
        <EditText android:id="@+id/groupTxtBox"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
    </TableRow>
    </TableLayout>

enter image description here

4 个答案:

答案 0 :(得分:3)

诀窍是将上面编辑中定义的tableview与 strechColumn 标记结合起来:

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:stretchColumns="1">
  <TableRow>
    <Button android:id="@+id/setNameBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Set Item Name "/>
    <EditText android:id="@+id/nameTxtBox"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
  </TableRow>
</TableLayout>

答案 1 :(得分:2)

使用TableLayoutTableRow s。

答案 2 :(得分:1)

三个选项:

  1. 将此放在TableLayout中,而不是您当前正在执行的嵌套LinearLayout
  2. 将您的嵌套从具有水平子项的垂直父项更改为具有垂直子项的水平父项(但是,这会打开可能的垂直定位问题,因此我不赞成此选项)
  3. 使用RelativeLayout和RelativeLayout子项可用的所有layout_ *属性
  4. 我个人赞成选项1。

答案 3 :(得分:0)

你可以使用laout_width / layout_height的特定宽度和高度,如layout_width =“150dip”。您可能会遇到无法容纳所有文本的按钮,但如果您的文本已修复,您可以仔细检查以确保它一切正常。