17

TableRowsをメインアクティビティとしてTableLayoutを使用しています。

TableLayout内には、アクティビティ内に2つのラジオボタンを含むラジオグループがあります(ラジオグループはテーブル行内にあります)。右端のラジオボタンを右端の画面に揃えたいので、「ギャップ」は(右ラジオボタンの後ではなく)左ラジオボタンと右ボタンの間にあります。すなわち

だから
|を持つ代わりに (x)(x)ギャップ| |(x)ギャップ(x)|
があります

ここで、(x)はラジオボタンと|です。画面の端です

重力(center_horizo​​ntal)を使用して、両方のボタンを中央に配置できます(つまり、|ギャップ(x)(x)ギャップ|)が、前に述べたように、ボタンを希望どおりに分割できないようです。

4

4 に答える 4

34

画面全体に水平方向に任意の数のボタンを均等に配置するために必要なのは、次のとおりです。

  1. RadioGroup には android:orientation="horizontal"& が必要ですandroid:layout_width="fill_parent"
  2. 右端のボタンを除いて、各ラジオ ボタンには が必要 android:layout_weight="1"です (画面の右端に配置するため)。

横向きのスクリーンショット

これを理解するのに何時間もかかりました。

以下は、調査アプリ用の 2 つのテキスト ラベルと画面の右端と左端のボーナスを含むサンプル コードです。

<RadioGroup
    android:id="@+id/radio_group"
    android:orientation="horizontal"
    android:layout_below="@id/question" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:visibility="gone"
>
    <RadioButton
        android:id="@+id/strong_disagree_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="1"
    />
    <RadioButton
        android:id="@+id/disagree_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/disagree"
    />
    <RadioButton
        android:id="@+id/neutral_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/neutral"
    />
    <RadioButton
        android:id="@+id/agree_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/agree"
    />
    <RadioButton
        android:id="@+id/strong_agree_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="5"
    />
</RadioGroup>
<TextView
    android:id="@+id/disagree_label"
    android:text="@string/strongly_disagree_txt"
    android:layout_below="@id/radio_group" 
    style="@style/TextAppearance"
    android:visibility="gone"
    />
<TextView
    android:id="@+id/agree_label"
    android:text="@string/strongly_agree_txt"
    android:layout_below="@id/radio_group" 
    android:layout_alignParentRight="true" 
    style="@style/TextAppearance"
    android:layout_width="wrap_content"
    android:visibility="gone"
    />
于 2011-04-30T13:51:04.637 に答える
9

私の解決策を見つけました。重みと重力の組み合わせと余白の削除。ラジオ グループは、layout_width="fill_parent" を持つことができます。各ラジオ ボタンには layout_weight="1" を指定する必要がありますが、各ラジオ ボタンの layout_width を指定して、デフォルトのラジオ ボタン イメージの幅であると思われるデフォルトの "37" をオーバーライドする必要があります。

        <RadioGroup android:id="@+id/overall"
        android:layout_width="fill_parent" android:layout_height="80dp"
        android:gravity="center"
        android:orientation="horizontal">

最初のボタンには次のものが必要です。

                android:layout_weight="1"
            android:layout_gravity="center|left"

最後のボタンには次のものが必要です。

            android:layout_gravity="center|right"

注: すべてのボタンには layout_gravioty が設定されていますが、一番右のボタンには layout_weight が設定されていません!

于 2011-01-19T23:00:14.637 に答える
0

あなたの質問が正しいと理解できたら、RadioGroup 内で次のコードを試すこともできます。

<ToggleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<View
    android:id="@+id/view1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1" />

<ToggleButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
于 2013-01-29T09:32:35.437 に答える
0

これに対する解決策を見つけたことがありますか?私の中間的な解決策が役立つかもしれませんが、それは私にとって全体像ではありません. 特定の幅を設定することでこれを行うことができましたが、これでは画面の幅に合わせてビューのサイズを変更できません。

    <RelativeLayout  
    android:id="@+id/overall_layout"
    android:layout_width="290dp" android:layout_height="wrap_content">

    <RadioGroup android:id="@+id/overall"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:orientation="horizontal">
        <RadioButton android:id="@+id/overall_1" android:tag="1"
            android:button="@drawable/radio_1"
            android:layout_width="50dp"
            android:layout_marginRight="10dp"
            android:layout_height="wrap_content"></RadioButton>
        <RadioButton android:id="@+id/overall_2" android:tag="2"
            android:button="@drawable/radio_2"
            android:layout_width="50dp"
            android:layout_marginRight="10dp"
            android:layout_height="wrap_content"></RadioButton>
        <RadioButton android:id="@+id/overall_3" android:tag="3"
            android:button="@drawable/radio_3"
            android:layout_width="50dp"
            android:layout_marginRight="10dp"
            android:layout_height="wrap_content"></RadioButton>
        <RadioButton android:id="@+id/overall_4" android:tag="4"
            android:button="@drawable/radio_4"
            android:layout_width="50dp"
            android:layout_marginRight="10dp"
            android:layout_height="wrap_content"></RadioButton>
        <RadioButton android:id="@+id/overall_5" android:tag="5"
            android:button="@drawable/radio_5"
            android:layout_width="50dp"
            android:layout_height="wrap_content"></RadioButton>
    </RadioGroup>
    <TextView android:text="left" android:id="@+id/left"
        android:layout_below="@id/overall"
        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    <TextView android:text="right" android:id="@+id/right"
        android:layout_below="@id/overall"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
    </RelativeLayout>

最後のボタンには余白がないことに注意してください。

ラジオ グループに 5 つのカスタム ボタンを配置しようとしています。最初のボタンは左揃え、最後のボタンは右揃えです。ボタンの幅は正確に 50 ピクセルで、ボタンに個別に関連付けられたテキストは必要ありません。以下の 2 つのテキストは、相対的なレイアウトで左寄せおよび右寄せされています。「layout_gravity」を使用しても効果はなく、「layout_weight」は各ボタンの右側にパディングを追加します。これにより、右端のボタンが正当化されなくなります。

これには多くの髪の毛を引っ張っています。

于 2011-01-19T20:23:05.350 に答える