2013-06-12 54 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。

我不知道單選按鈕的標準大小是什麼,或者即使這是相同的問題,但它可能只是工作。