1

RadioGroup の RadioButton の間隔に少し問題があります。プレビューによると、次のようになります。

ここに画像の説明を入力

しかし、キットカットを実行している私の電話では、次のようになります。

ここに画像の説明を入力

Lollipop を実行している電話では、まったく同じコードで完全に問題ないように見えるため、これは困惑しています。

ここに画像の説明を入力

以前のバージョンでは、何らかの理由で RadioGroup が親レイアウトを超えているように見えますが、明らかな理由はありません。私は何時間もこれに固執しており、layout_height、gravity、layout_gravity、および weight のすべての組み合わせを試しました。私が収集したものから、layout_below 属性をほとんど無視しているようです。しかし、なぜ!事前に感謝します。XML コードは以下のとおりです。

 <RelativeLayout
                    android:id="@+id/genderLayout"
                    android:layout_below="@+id/genderText"
                    style="@style/EditProfBoxStyle">

                    <TextView
                        android:id="@+id/maleText"
                        android:text="@string/choice_male"
                        style="@style/Text.Medium.EditProfile"/>

                    <TextView
                        android:id="@+id/femaleText"
                        android:text="@string/choice_female"
                        android:layout_below="@+id/maleText"
                        style="@style/Text.Medium.EditProfile" />

                    <TextView
                        android:id="@+id/bothText"
                        android:text="@string/choice_both"
                        android:layout_below="@+id/femaleText"
                        style="@style/Text.Medium.EditProfile"/>

                    <RadioGroup
                        android:id="@+id/genderGroup"
                        style="@style/RadioGroupStyle"
                        android:layout_alignBottom="@id/bothText"
                        android:layout_alignTop="@id/maleText">

                        <RadioButton
                            android:id="@+id/maleCheckBox"
                            style="@android:style/Widget.CompoundButton.CheckBox"
                            android:layout_weight="1"
                            android:layout_width="wrap_content"
                            android:layout_height="0dp"/>

                        <RadioButton
                            android:id="@+id/femaleCheckBox"
                            style="@android:style/Widget.CompoundButton.CheckBox"
                            android:layout_weight="1"
                            android:layout_width="wrap_content"
                            android:layout_height="0dp"/>

                        <RadioButton
                            android:id="@+id/bothCheckBox"
                            style="@android:style/Widget.CompoundButton.CheckBox"
                            android:layout_weight="1"
                            android:layout_width="wrap_content"
                            android:layout_height="0dp"/>
                    </RadioGroup>
                </RelativeLayout>

ラジオグループ スタイル:

<style name="RadioGroupStyle">
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_alignParentRight">true</item>
        <item name="android:layout_alignParentEnd">true</item>
    </style>

編集:問題は、私が親として使用しているスクロールビューに間違いありません。 スクロールビューを削除すると、すべてが正常に戻ります。そして、私は含めfillviewport=trueたので、何が問題なのかわかりません

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:fillViewport="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context="com.richluick.android.roomie.ui.activities.EditProfileActivity">

        <!--Relative layout with RadioButtons from above goes here-->

</RelativeLayout>
4

1 に答える 1

0

すべてのテキスト ビューとラジオ ボタンを 1 回でまとめて構造化する代わりに、それらを行として構造化し、その行内に同じレイアウト パラメータでチェックボックスを配置する方が理にかなっている場合があります。

あまりにも多くのビューを使用することはタブーであると何度も耳にしました。これは Android <1.5 の場合であり、レイアウト内であまりにも多くのビューを使用することにまだうんざりしたい場合もありますが、ビューの深さのレイヤーを 1 つだけ追加するだけでも、すべての違いが生じることがあります。余分なビューを追加すると、オブジェクト ツリーに 1 つの余分なオブジェクトが発生しますが、レイアウト プロセスがより正確で簡単になるため、トレードオフになります。

このようなことを試してください(注:テストされていません-一般的な感覚を与えるだけです)

 <RelativeLayout
                android:id="@+id/genderLayout"
                android:layout_below="@+id/genderText"
                style="@style/EditProfBoxStyle">
      <LinearLayout
           android:id="@+id/male"
           android:orientation="horizontal"
      >
                <TextView
                    android:id="@+id/maleText"
                    android:text="@string/choice_male"
                    style="@style/Text.Medium.EditProfile"/>

                <RadioGroup
                    android:id="@+id/genderGroup"
                    style="@style/RadioGroupStyle"
                    android:layout_alignBottom="@id/bothText"
                    android:layout_alignTop="@id/maleText">
      </LinearLayout>
      <LinearLayout.... (etc etc)
 </RelativeLayout>
于 2015-04-13T23:48:00.037 に答える