两个手机上的CheckBox间距非常不同

时间:2013-03-07 15:19:30

标签: android android-layout

我无法确定复选框与与之关联的文字之间的间距。

我的google galaxy nexus显示了这一点:

screenshot 1

我的星系s2显示了这个:

screenshot 2

我的布局很简单:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/transparent_content_box"
    android:layout_marginBottom="5dp"
    android:orientation="vertical"
    >

    <CheckBox
        android:id="@+id/edit_profile_private_wardrobe"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="@string/edit_profile_wardrobe"
        style="@style/Theme.CheckBoxHint"
        />

    <CheckBox
        android:id="@+id/edit_profile_send_me_vouchers"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:text="@string/edit_profile_vouchers"
        style="@style/Theme.CheckBoxHint"

        />

    <CheckBox
        android:id="@+id/edit_profile_third_party_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/edit_profile_email" 
        style="@style/Theme.CheckBoxHint"
        />

</LinearLayout>

按照我的风格:

<style name="Theme.CheckBoxHint">
    <item name="android:textSize">16sp</item>
    <item name="android:textColor">@color/white</item>
</style>

使用选择器drawable并使用以下选项设置复选框:

<style name="Theme.CheckBox" parent="android:Widget.CompoundButton.CheckBox">
    <item name="android:button">@drawable/check_box</item>
</style>

然后在主应用主题中使用它:

<item name="android:checkboxStyle">@style/Theme.PMBAppTheme.CheckBox</item>

我已尝试在复选框上将填充设置为0,但这只会使文本位于复选框本身上。

如何删除galaxy s2上复选框周围的额外间距?

2 个答案:

答案 0 :(得分:1)

事实证明,在<item name="android:background">@null</item>中设置Theme.CheckBoxHint可以解决我的问题。必须有一些透明的drawable用作背景。

答案 1 :(得分:-2)

你需要设置你的边距,而不是你的填充。 确保Theme.CheckBoxHint边距为0。