2

センタリング、同じサイズなどについてたくさんの質問があるようですが、これまでのところ、私のケースを正確に見つけられなかったので、あえて質問します:)

必要なのは、次のような 3 つのボタンのレイアウトです。

[ previous ][*select*] [  next  ]

ここで、[前へ] ボタンと[次へ]ボタンは同じサイズ (つまり、この場合は[前へ]ボタンの方が大きいサイズ) であり、[*選択*]ボタンは使用可能な幅全体を占めるように引き伸ばす必要があります。 .

LinearLayout の 2 つのボタンを同じサイズにするヒントに従って、次の xml ファイルを作成しました。

<LinearLayout
    android:id="@+id/button_bar"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal" >

    <Button
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Previous" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Select" />

    <Button
        android:layout_width="0dip"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:text="Next" />

</LinearLayout>

これはほとんど機能します:) 1つのことを除いて:次のボタンをのボタンのサイズに一致させる代わりに、Androidは前のボタンをのサイズにします:)そして、このため、テキスト「前」は2行で折り返されます。お気に入り

Previ
ous

これがバグかどうかはわかりませんが、希望するレイアウトを実現するための回避策や別の方法をアドバイスしてもらえますか?

ありがとうございました!

4

4 に答える 4

1

「android:layout_weight」を含める場合は、「android:layout_width」または「android:layout_height」を「fill_parent」として指定する必要があります。

このようにコードを変更します

<LinearLayout
android:id="@+id/button_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="Previous" />

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1.5"
    android:text="Select" />

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:text="Next" />

于 2010-08-20T11:19:26.163 に答える
1

RelativeLayout を使用することをお勧めします

<RelativeLayout
    android:id="@+id/buttons"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"

    android:clickable="false">

    <Button
    android:id="@+id/previous"

    android:layout_width="30dp"
    android:layout_height="wrap_content"
    android:text="Previous" 

    android:layout_alignParentLeft="true"/>

    <Button
    android:id="@+id/next"

    android:layout_width="30dp"
    android:layout_height="wrap_content"
    android:text="Next" 

    android:layout_alignParentRight="true"/>

<Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Select"

    android:layout_toRightOf="@id/previous"
    android:layout_toLeftOf="@id/next" />
</RelativeLayout>

これはうまくいくはずです。

于 2010-08-20T11:13:47.217 に答える
0

そのような場合、私はTableLayoutを選択します。この場合、1つの行があり、各ボタンの重みは1です。そしてstretchColumn属性は列1に配置されます。これは何か違いがありますか?

于 2010-08-20T11:04:01.490 に答える
0

コードでこれを行う以外に、サイズを他のものと一致させることができるかどうかはわかりません。最も簡単な解決策は、前と次のボタンの幅をdp / sp単位で調整して、見栄えが良くなり、選択ボタンがlayout_weight属性を持つ唯一のボタンになるようにすることです。

于 2010-08-20T11:05:45.523 に答える