29

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>
4

3 に答える 3

51

画面幅を均等に共有したい場合はandroid:layout_width="match_parent"、それぞれに設定する必要がありますView。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 など)、そのドローアブルを背景として参照します。

于 2013-03-15T23:06:41.453 に答える
1

各レイアウトの親と一致するように幅を設定し、線形レイアウトのようにウェイト jsut を追加します。

<RadioGroup
            android:id="@+id/radio_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/bigMarginStart"
            android:layout_marginTop="@dimen/smallMarginTop"
            android:layout_marginEnd="@dimen/baseMarginEnd"
            android:orientation="horizontal"
            android:weightSum="3"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <RadioButton
                android:id="@+id/all_"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/smallMarginTop"
                android:layout_weight="1"
                android:background="@drawable/radio_flat_selector"
                android:button="@android:color/transparent"
                android:checked="true"
                android:gravity="center"
                android:paddingLeft="@dimen/bigPaddingStart"
                android:paddingTop="@dimen/smallPaddingTop"
                android:paddingRight="@dimen/bigPaddingStart"
                android:paddingBottom="@dimen/smallPaddingBottom"
                android:text="All" />

            <RadioButton
                android:id="@+id/future_"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="@dimen/smallMarginStart"
                android:layout_marginTop="@dimen/smallMarginTop"
                android:layout_marginEnd="@dimen/smallMarginEnd"
                android:layout_weight="1"
                android:background="@drawable/radio_flat_selector"
                android:button="@android:color/transparent"
                android:gravity="center"
                android:paddingLeft="@dimen/bigPaddingStart"
                android:paddingTop="@dimen/smallPaddingTop"
                android:paddingRight="@dimen/bigPaddingStart"
                android:paddingBottom="@dimen/smallPaddingBottom"
                android:text="Future" />

            <RadioButton
                android:id="@+id/direct_"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/smallMarginTop"
                android:layout_weight="1"
                android:background="@drawable/radio_flat_selector"
                android:button="@android:color/transparent"
                android:gravity="center"
                android:paddingLeft="@dimen/bigPaddingStart"
                android:paddingTop="@dimen/smallPaddingTop"
                android:paddingRight="@dimen/bigPaddingStart"
                android:paddingBottom="@dimen/smallPaddingBottom"
                android:text="Direct" />

        </RadioGroup>
于 2020-12-24T10:19:54.133 に答える