使用TableLayout将视图放置在屏幕/布局的底部

时间:2012-04-20 19:17:50

标签: android android-layout android-xml gravity android-layout-weight

我正在尝试在屏幕底部放置一个带有两个按钮的TableRow,在布局中的其他视图元素下,但是如果我放在那里,TableRow会从屏幕上消失。我把它放在顶部或中间,没问题。

我尝试了很多layout_gravity,重力和重量组合,但我无法得到它。

screenshot of the layout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:gravity="center_horizontal" 
    android:text="@string/traza" 
    android:layout_margin="10sp"/>

    <TableRow
        android:id="@+id/tableRow8"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3sp"
        android:gravity="center"
        android:weightSum="2" >

        <Button
            android:id="@+id/reiniciar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_margin="5sp"
            android:background="@drawable/bordebutton"
            android:text="@string/reiniciar" />

        <Button
            android:id="@+id/comprobar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_margin="5sp"
            android:background="@drawable/bordebutton"
            android:text="@string/comprobar" />

    </TableRow>

<android.gesture.GestureOverlayView
    android:id="@+id/gestures"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:fadeEnabled="true"
    android:fadeOffset="3000"
    android:gestureStrokeType="multiple"
    android:eventsInterceptionEnabled="true"
    android:orientation="vertical"/>
</LinearLayout>

2 个答案:

答案 0 :(得分:2)

您需要使用 RelativeLayout 来实现此目标。

你去了:

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

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10sp"
        android:gravity="center_horizontal"
        android:text="@string/traza"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TableRow
        android:id="@+id/tableRow8"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="3sp"
        android:gravity="center"
        android:weightSum="2"
        android:layout_alignParentBottom="true" >

        <Button
            android:id="@+id/reiniciar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5sp"
            android:layout_weight="1"
            android:background="@drawable/bordebutton"
            android:text="@string/reiniciar" />

        <Button
            android:id="@+id/comprobar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5sp"
            android:layout_weight="1"
            android:background="@drawable/bordebutton"
            android:text="@string/comprobar" />
    </TableRow>

    <android.gesture.GestureOverlayView
        android:id="@+id/gestures"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:eventsInterceptionEnabled="true"
        android:fadeEnabled="true"
        android:fadeOffset="3000"
        android:gestureStrokeType="multiple"
        android:orientation="vertical" />

</RelativeLayout>

答案 1 :(得分:0)

修改 如果要使用TableLayout中包含的功能,则根元素应为View。您目前将其作为LinearLayout

我没有看到任何提及非TableRow视图如何垂直放置在documentation中的内容。

根据我的经验,TableLayout将始终将内容直接放在最后一行之下。

尝试使用RelativeLayoutLinearLayout来完成您的需求吗?它比TableLayout更灵活。

您也可以关闭TableLayout并在其下方放置LinearLayout