如何使视图填充连续的额外空间?

时间:2015-04-18 06:16:07

标签: android android-layout

在Android应用程序开发中,使用Linear Layout,我有两个并排连接的按钮。我用TableRow做了这样的安排,并将它对齐。但按钮不完全填满额外的空间。如何让按钮填充左侧和右侧的额外空间?

这里是xml代码:

  <TableRow
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_gravity="center"
    android:layout_margin="7dp"
    >
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Save"
        android:textAlignment="center"
        android:id="@+id/save"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel"
        android:textAlignment="center"
        android:id="@+id/cancel"
        />
</TableRow>

LinearLayout具有以下属性:

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    android:layout_alignParentBottom="true"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.appname.classname">

以下是屏幕截图示例:

enter image description here

2 个答案:

答案 0 :(得分:1)

不使用TableRow,而是在垂直LinearLayout中使用水平LinearLayout。请注意,LinearLayout的默认方向是水平的。所以你可以这样做:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <Button
        android:id="@+id/save"
        android:text="@string/save"
        android:layout_weight="1"
        android:layout_width="0dip"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/cancel"
        android:text="@string/cancel"
        android:layout_weight="1"
        android:layout_width="0dip"
        android:layout_height="wrap_content" />
</LinearLayout>

layout_weight属性将使每个项目占用该比例中的可用空间。在这种情况下,按钮将以1:1的比例共享屏幕空间。

答案 1 :(得分:0)

将第一个按钮的android:layout_marginRight设置为&#34; -8dip&#34;甚至更多。 sspace应该更小或消失。 你可以使用RelativeLayout,那里没有边距。