3つのラジオボタンがあり、それらを画面全体に均等に配置したいと考えています。 Android:layout_weight="1"
を使用すると、ボタンが画面全体に拡大されます。では、それぞれの間に同じサイズのスペースを確保し、異なる画面サイズで拡大縮小するにはどうすればよいでしょうか。
<RadioGroup
Android:id="@+id/auton_bar"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal"
Android:paddingLeft="10dp"
Android:layout_below="@id/clear_fields"
>
<RadioButton
Android:id="@+id/auton_radio_1"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:background="@drawable/auton_col"
Android:layout_weight="1"
/>
<!-- Android:layout_marginRight="380dp" -->
<RadioButton
Android:id="@+id/auton_radio_2"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:background="@drawable/auton_col"
Android:layout_weight="1"
/>
<RadioButton
Android:id="@+id/auton_radio_3"
Android:layout_height="wrap_content"
Android:layout_width="wrap_content"
Android:background="@drawable/auton_col"
Android:layout_weight="1"
/>
</RadioGroup>
それらに画面幅を均等に共有させたい場合は、各View
にAndroid:layout_width="match_parent"
を設定する必要があります。あなたのxmlは次のようになります:
<RadioGroup
Android:id="@+id/auton_bar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_below="@id/clear_fields"
Android:orientation="horizontal"
Android:paddingLeft="10dp" >
<RadioButton
Android:id="@+id/auton_radio_1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:background="@drawable/auton_col" />
<!-- Android:layout_marginRight="380dp" -->
<RadioButton
Android:id="@+id/auton_radio_2"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:background="@drawable/auton_col" />
<RadioButton
Android:id="@+id/auton_radio_3"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:background="@drawable/auton_col" />
</RadioGroup>
詳しく説明すると、layout_weight
は2つの方法で使用できます。
wrap_content
に設定し、最後のビューに1の重みを付けることができます。0dp
またはmatch_parent
に設定し、各ビューに同じ重み値を指定します。彼らはスペースを均等に共有します。背景にドローアブルスケールを設定するには、drawable/
フォルダーに次のような新しいxmlを作成します
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:gravity="center"
Android:src="@drawable/auton_col" />
好きな名前を付け(auton_col_scale.xmlなど)、そのドローアブルを背景として参照します。
RadioButtonのレイアウトウェイトを使用すると、レイアウトのウェイトが中央からずれて配置されていましたが、それぞれが画面の50%を共有していました(左揃えでした)。各RadioButtonに重力を設定すると、テキストのみが中央揃えになります/ facepalm
以下のXMLは、2つのラジオボタン(任意のビューであってもかまいません)を水平方向に配置し、中央に配置する方法を示しています。
<RadioGroup
Android:id="@+id/radiogroup"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<Space
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
<RadioButton
Android:id="@+id/radioyes"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/yes"
Android:checked="false"/>
<Space
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
<RadioButton
Android:id="@+id/radiono"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/no"
Android:checked="false"/>
<Space
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="1"/>
</RadioGroup>