0

这段 XML 将正确显示一个覆盖整行的按钮,然后是 2 个按钮,它们的权重均匀并共享 50% 的空间,如下所示:

__________________________
|________________________|
||       ButtonA        ||
||______________________||
|____________ ___________|
|| ButtonB  | | ButtonC ||
||__________| |_________||
|________________________|

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_height="fill_parent" android:layout_width="fill_parent">
<TableRow android:layout_height="fill_parent" android:layout_width="fill_parent"
 android:layout_weight="1">
    <Button android:id="@+id/b_a"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button A" />
</TableRow>
<TableRow android:layout_height="fill_parent" android:layout_width="fill_parent"
 android:layout_weight="1">
    <Button android:id="@+id/b_b"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button B" />
    <Button android:id="@+id/b_c"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Button C" />
</TableRow>

我想用 ImageView 替换 Button A,它会像 Button A 当前一样延伸。但是,当您将 ButtonA 替换为:

<ImageView android:id="@+id/img_a"
        android:layout_width="wrap_content" android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src=@drawable/imagename />

这会影响按钮 B 和 C 的权重,使按钮 B 覆盖大部分屏幕并使 C 真正被压扁。它似乎与图像的尺寸有关(我使用的是 320x50)。

__________________________
|________________________|
||       Image A        ||
||______________________||
|___________________ ____|
|| ButtonB          ||bC||
||__________________||__||
|________________________|

如何在不影响其余表行的情况下插入此 ImageView?

4

1 回答 1

0

我认为您对 layout_weight 的使用有点过于自由了。这更像是一个选项,用于在需要根据屏幕大小动态调整大小的布局中包含多个项目(就像您使用按钮 B 和 C 一样)。我会摆脱你的 layout_weights 的其余部分,因为它们基本上没有做任何事情,并且可能有一些潜在的时髦行为。此外,layout_weight 是项目大小与屏幕的比率,范围为 0-1。按钮 B 和 C 都希望为它们分配 100% 的水平空间。因此,我相信您的问题是按钮 B 的优先级高于按钮 C。尝试将这 2 个项目的 layout_weight 更改为 0.5,这样它们每个都需要 50% 的分配空间。让我知道这对你有用!

于 2011-07-26T22:30:08.600 回答