在我的简单应用程序中,我使用放射线组内的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>
答案 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。
我不知道单选按钮的标准尺寸是什么,或者即使这是同一个问题,但它可能会起作用。