0

この XML の部分は、行全体をカバーするボタンを正しく表示し、次に均等に重み付けされ、スペースの 50% を共有する 2 つのボタンを次のように表示します。

__________________________
|________________________|
||       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>

ボタン A を、現在のボタン A と同じように広がる ImageView に置き換えたいと思います。ただし、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 に答える