2013-06-12 56 views
0

我简单的应用程序中我使用2个单选按钮内的radiogroup。在谷歌设备上(Nexus,三星nexus)一切正常显示,但在其他设备上,如索尼Experia,三星S III的圆形按钮下的单选按钮填充标签。我使用单选按钮的图像并使用paddingLeft获取标签和单选按钮之间的间隙。这是我的代码:RadioButton无法正确显示在Android

<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

我想这可能与一个类似的问题,我曾与复选框。

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

因此,我在常规值/ dimens.xml中为复选框大小+我想要的填充定义了一个维度,并创建了一个只包含填充的值-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> 

,然后更新您的风格checkbox_size的paddingLeft。

我不知道单选按钮的标准大小是什么,或者即使这是相同的问题,但它可能只是工作。