单选按钮无法在android中正确显示

时间:2013-06-12 11:31:06

标签: android xml radio-button

在我的简单应用程序中,我使用放射线组内的2个单选按钮。在谷歌设备(Nexus,三星nexus)一切正常显示,但在其他一些设备上,如索尼Experia,三星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>

1 个答案:

答案 0 :(得分:1)

我认为这可能与我在复选框中遇到的类似问题有关。

在Android版本17之前,paddingLeft包含了复选框本身的大小,而在android版本17之后,它是复选框和文本之间的填充。

因此,我在正常值/ dimens.xml中为复选框大小+我想要的填充定义了一个维度,并创建了一个仅包含填充的values-v17 / dimens.xml。

E.g。值/ 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。

我不知道单选按钮的标准尺寸是什么,或者即使这是同一个问题,但它可能会起作用。