0

我正在做 Derek Banas 的 Android 开发教程 11,我只是想将保存按钮移到右侧。

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

    ...

    <TableRow
        android:id="@+id/tableRow7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/saveButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="@string/save_button" />

    </TableRow>

</TableLayout>

这是它的样子:

add_new_contact.xml

我希望这个按钮在右侧,为什么它会尴​​尬地停在屏幕中间?

4

4 回答 4

1
<TableRow android:id="@+id/tableRow7"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="right">

    <View   android:layout_width="0dp"
            android:layout_height="0dp"/>

    <Button android:id="@+id/addButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/save_button"
            android:onClick="addNewContact"/>

</TableRow>

该行的第一个单元格中必须有一些东西。例如,您可以像这样生成一个空视图来实现这一点,或者在<Button>标签中使用这些属性之一。

android:layout_column-这个孩子应该在的列的索引。

android:layout_span-定义这个孩子应该跨越多少列。

于 2013-07-07T19:03:29.220 回答
1

Button是您期望的位置:在该行的第一列的右侧。如果您将layout_gravityTable 的 设置为"right",那么在没有第二列的情况下,第一列将向右推,您将获得所需的效果。

一种更系统的方法是在“按钮”之前放置一个视图(没有内容),即。故意填充该视图的第一列。

我想你也可以添加android:layout_span="2" Button也达到你想要的效果。

于 2013-07-07T18:43:14.913 回答
0

尝试android:layout_gravity="right"

于 2013-07-07T18:37:20.627 回答
0

我认为这是因为您的行没有跨越两列(尽管按钮的边缘与文本字段的开头重叠很奇怪),请尝试添加android:layout_span=2到按钮的 TableRow。

于 2013-07-07T18:31:56.437 回答