4

レイアウトファイル

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/MyLL"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal" >

    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

            <RadioButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_gravity="center"
                android:gravity="center" />

            <RadioButton
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_gravity="center"
                android:gravity="center" />

    </RadioGroup>

</LinearLayout>

2 つの RadioButton が水平方向のスペースを均等に分割します。

それはそれでいいのですが、左に寄せるのではなく中央に寄せてほしいです。なぜandroid:gravity="center"この効果を与えていないのですか?

以前にこの質問を CheckBoxes で試しましたが、返信では、各ビュー (CheckBox) に無料の LinearLayout を挿入することが提案されました。機能する限り、エレガントでも効率的でもない答えに反対することはできません。

しかし、そのトリックは RadioButtons では機能しません。RadioGroup は、RadioButton のコレクションの直接の親である必要があり、クリックしたときに互いのチェックを外すことができます。

編集

上記の XML 宣言により、以下の最初のスケッチが得られます。私は最初の 3 つを探しているのではなく、4 番目を探しています。

ここに画像の説明を入力

4

2 に答える 2

1

さて、とても悲しいニュースですが、このRadioButtonクラスは実際にはラジオ ドローアブルが左に配置されるようにハードコードされています。私が見つけた唯一の解決策は、RadioButton をサブクラス化し、Drawable の配置を自分で処理することです。

これが代替ソリューションです(RadioGroupまったく使用せずに)

于 2013-05-22T21:35:56.583 に答える