0

私のシンプルなアプリでは、ラジオグループ内で2つのラジオボタンを使用しています。Google デバイス (Nexus、Samsung nexus) ではすべてが正しく表示されますが、Sony Experia、Samsung S III などの他のデバイスでは、丸ボタンの下にラジオ ボタン パディングのラベルが表示されます。ラジオボタンに画像を使用し、ラベルとラジオボタンの間のギャップを取得するために paddingLeft を使用します。これは私のコードです:

<RadioGroup 
    android:id="@+id/radioGrpBitRate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/btnPlay"
    style="@style/RadioGroup" >

    <RadioButton
        android:id="@+id/radio128"
        style="@style/RadioButton128"
        android:layout_height="wrap_content"
        android:gravity="center|right" />

    <RadioButton
        android:id="@+id/radio32"
        style="@style/RadioButton32"
        android:gravity="center|right" />

</RadioGroup>

そしてスタイル

<style name="RadioGroup">
    <item name="android:layout_marginTop">25dp</item>
    <item name="android:layout_marginLeft">15dp</item>
</style>

<style name="RadioButton128" parent="@android:style/Widget.CompoundButton.RadioButton">
    <item name="android:button">@drawable/radio</item>
    <item name="android:text">@string/radio128String</item>
    <item name="android:checked">true</item>
    <item name="android:onClick">actionPlay128</item>
    <item name="android:layout_marginBottom">5dp</item>
    <item name="android:paddingBottom">6dp</item>
    <item name="android:paddingTop">5dp</item>
    <item name="android:paddingLeft">5dp</item>
    <item name="android:textSize">20sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">#ededed</item>
</style>
<style name="RadioButton32" parent="@android:style/Widget.CompoundButton.RadioButton">
    <item name="android:button">@drawable/radio</item>
    <item name="android:text">@string/radio32String</item>
    <item name="android:checked">false</item>
    <item name="android:onClick">actionPlay32</item>
    <item name="android:paddingLeft">5dp</item>
    <item name="android:textSize">20sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">#ededed</item>
</style>
4

1 に答える 1

1

これは、チェックボックスで発生した同様の問題に関連している可能性があると思います。

Android バージョン 17 より前では、paddingLeft にはチェックボックス自体のサイズが含まれていましたが、Android バージョン 17 以降では、チェックボックスとテキストの間のパディングです。

したがって、通常の値/dimens.xml で、チェックボックスのサイズ + 必要なパディングのディメンションを定義し、パディングだけを含む values-v17/dimens.xml を作成しました。

例: values/dimens.xml

    <dimen name="checkbox_size">42dp</dimen> <!-- 5dp plus 37dp of standard checkbox -->

値-v17/dimens.xml

    <dimen name="checkbox_size">5dp</dimen>

そして、スタイルの paddingLeft をcheckbox_sizeに更新します。

ラジオボタンの標準サイズが何であるか、またはこれが同じ問題であるかどうかはわかりませんが、うまくいくかもしれません。

于 2013-08-30T14:01:16.373 に答える