如何在Android中扩展TableLayout的中间表格?

时间:2011-05-02 19:25:10

标签: android tablelayout

我的Android应用中有以下布局:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/widget41"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<tablerow>
    <Button android:id="@+id/button_when" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:padding="10px"
        android:text="When">
    </Button>
</tablerow>
<tablerow>
    <EditText android:id="@+id/text_description" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:padding="10px"
        android:text="What happened?" android:textSize="18sp">
    </EditText>
</tablerow>
<tablerow>
    <Button android:id="@+id/button_location" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:padding="10px"
        android:text="Location">
    </Button>
</tablerow>

如何制作我的布局,以便在中间(带有EditText的那个)扩展以填充未被第一个和第三个项目占据的整个屏幕空间?

2 个答案:

答案 0 :(得分:1)

这可以比Varundroid的建议简单得多。 android.widget.TableRowandroid.widget.LinearLayout的子类,因此可以采用布局可以采用的所有参数。所以这将解决问题:

  <TableRow
    android:layout_height='fill_parent'
    android:layout_weight='1.0'
    android:layout_width='fill_parent'
  >
  …
  </TableRow>

请注意,在需要扩展时通常需要设置android:layout_weight

答案 1 :(得分:0)

这很简单。

有两种方式

  1. 找出屏幕密度和分辨率,然后找出第一个和最后一个所需的空间。
  2. 现在只需使用android:layout_height="space which has been left"
  3. 将剩下的空间分配到中间行

    另一种方法是更改​​android:layout_height直到它覆盖整个屏幕

    我的个人意见是第一个,因为屏幕尺寸可以因设备而异,所以你应该安全地玩。

    顺便问一下,你确定你的代码有效吗?因为t标记<tablerow>中的小<TableRow>字母应为android:layout_height and android:layout_width。如果你不在每个标签中传递{{1}},那么它可能会导致你的布局出错。

    安全播放,否则您的应用将被证明是错误的。

    我希望它会有所帮助。