Android 自定义复选框显示2.3和4.2的不同布局

Android 自定义复选框显示2.3和4.2的不同布局,android,layout,checkbox,Android,Layout,Checkbox,我正在与内部的项目工作,我想使用复选框选中/未选中事件的自定义图像 在我的登录xml中,我写了: <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="5dp" > &

我正在与内部的项目工作,我想使用复选框选中/未选中事件的自定义图像

在我的登录xml中,我写了:

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="5dp" >

        <CheckBox
            android:id="@+id/chk_remember_me"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@drawable/checkbox_uncheked"
            android:paddingLeft="5dp"
            android:text="Remember Me"
            android:textColor="#024d94"
            android:textSize="12dp" />
    </LinearLayout>

这里我使用了
android:paddingLeft=“5dp”
来获得按钮和文本视图之间的空间

我的问题:我对2.3和4.2有两种不同的看法

对于具有xhdpi或低于密度或具有大屏幕i的设备 我正在屏幕下方(这一个正是我想要的):

对于具有hdpi或低于密度或具有正常/小密度的设备 屏幕我正在屏幕下方:

谁能告诉我我在哪里失踪了?或者我的布局有什么问题

我想要与普通/大屏幕设备中的4.2设备相同的布局屏幕


提前感谢。

看来,
复选框
在默认情况下已经在内部使用了填充,而用
paddingLeft
覆盖它会导致这些问题。您应该从XML中删除该属性

如果仍要调整填充,则必须通过编程进行调整。看看这个答案:

要仅将其应用于>4.2,您可以使用以下内容,尽管我会在模拟器上进行测试,以确保此问题不仅仅是您的设备的问题


为复选框指定固定宽度,希望这可以解决您的问题。

不要指定填充,默认情况下,复选框会显示固定宽度。

您是否尝试过使用文本视图显示文本?@dmon:Thnks以供快速响应。但是我尝试了你的建议,但没有解决我的问题。非常感谢你的支持。但是通过删除paddingLeft,我得到了2.3中的默认空间,这比我想要的要多得多。对于4.2,我在按钮和文本之间没有任何空间。因此,删除paddingLeft并不能解决我的问题。@Bhavesh使用两种不同的布局,一种用于2.3,另一种用于4。2@chengbo:呵呵!!。。是的,但这不是我想要的解决方案。应该有办法解决这个问题。@OlegVaskevich:Thnks。我用link尝试了你的建议,但并没有完全解决我的问题。我的问题在4.2中运行得很好,但在2.3设备的按钮和文本视图之间获得了更多的空间。老实说,这听起来像是制造商定制的,效果不太好;毕竟,您希望复选框在默认情况下看起来不错。谢谢您的支持。但是你的建议没有解决我的问题。正如预期的那样,这会在整个控件中添加填充,而不是在复选框和文本之间
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {