如何在Android中展开TableLayout的中间TableRow?

发布于 2024-11-04 19:19:41 字数 1132 浏览 0 评论 0原文

我的 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 扩展以填充屏幕的整个空间,而不是被第一个和第三个项目占据?

I have the following layout in my Android app:

<?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>

How can I make my layout so that the in the middle, the one with the EditText, expands to fill the entire space of the screen not taken up by the first and third items?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情栀口红 2024-11-11 19:19:41

这比 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

This can be done much simpler then the suggestion from Varundroid. android.widget.TableRow is a subclass from android.widget.LinearLayout and therefore take all parameter a layout can take. So this will do the trick:

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

Note that setting android:layout_weight is usually needed when expanding is desired.

伪装你 2024-11-11 19:19:41

这很简单。

有两种方法

  1. 可以找出屏幕密度和分辨率,然后找出第一个和最后一个需要多少空间。
  2. 现在只需使用 android:layout_height="space which has was left" 将剩余的空间分配给中间行

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

我个人的意见是选择第一个,因为不同设备的屏幕尺寸可能有所不同,因此您应该谨慎行事。

顺便问一下,你确定你的代码可以工作吗?因为您的 t 在标记 中是小写字母,而它应该是 。有时,如果您不在每个标记中传递 android:layout_height 和 android:layout_width ,那么它可能会导致布局错误。

谨慎行事,否则您的应用程序将会出现问题。

我希望它会有所帮助。

It is very simple.

There are two ways

  1. find out the screen density and resolution and then find out how much space is required by first and last.
  2. Now simply allot the rest of the space to your middle row by using android:layout_height="space which has been left"

Another way is to change android:layout_height until its cover the whole screen

My personal opinion is to go with 1st one because screen sizes can be varied device to device so you should play safe.

By the way are you sure your code is working? because your t is in small letter in your tag <tablerow> wheres it should be <TableRow>. and sometine if you won't pass android:layout_height and android:layout_width in every tag then it could cause an error in your layout.

Play safe else your app will be turned out to be buggy.

I hope it will help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文