如何给两个按钮连续大小相同?

时间:2015-09-17 08:27:56

标签: android tablerow

我尝试给两个按钮大小相同。我使用以下代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TableRow android:id="@+id/tableRow5" >
                <Button
                    android:id="@+id/btn_pre"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_span="1"
                    android:text="@string/pre" />
                <Button
                    android:id="@+id/btn_next"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_span="1"
                    android:text="@string/next" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</ScrollView>

我的错误在哪里?请指教。

4 个答案:

答案 0 :(得分:3)

我认为你应该使用LinearLayout而不是tableLayout。并添加

  android:layout_weight="1"

按钮的比例。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
                <Button
                    android:id="@+id/btn_pre"
                    android:layout_weight="1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_span="1"
                    android:text="@string/pre" />
                <Button
                    android:id="@+id/btn_next"
                    android:layout_weight="1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_span="1"
                    android:text="@string/next" />

        </LinearLayout>
    </LinearLayout>
</ScrollView>

答案 1 :(得分:3)

如果您只需要两行按钮,则不需要uidScrollViewTableLayout

只有一个横向TableRow,其中包含两个LinearLayoutButton属性设置为0.50,意味着占据了50%的空间(对于{{ 1}}要工作,你必须将layout_weight设置为0dp。

layout_weight

答案 2 :(得分:2)

您仍然可以使用TableRow,因为它是LinearLayout的子类:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
            <TableRow android:id="@+id/tableRow5" >
                <Button
                    android:id="@+id/btn_pre"
                    android:layout_width="0dp"
                    android:weight="1"
                    android:layout_height="wrap_content"
                    android:layout_span="1"
                    android:text="@string/pre" />
                <Button
                    android:id="@+id/btn_next"
                    android:layout_width="0dp"
                    android:weight="1"
                    android:layout_height="wrap_content"
                    android:layout_span="1"
                    android:text="@string/next" />
            </TableRow>
        </TableLayout>
    </LinearLayout>
</ScrollView>

答案 3 :(得分:1)

使用match_parent代替fill_parent的更好方式,因为在Android文档中有说明:

  

FILL_PARENT(在API级别8及更高级别重命名为MATCH_PARENT),其中   意味着视图想要与其父视图一样大(减去填充)

see more in android documentation