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

Bha*_*iya 4 checkbox layout android

我正在使用内部项目我希望使用custome图像进行Checkbox选中/未选中的事件.

在我的登录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>
Run Code Online (Sandbox Code Playgroud)

在这里,我用于 android:paddingLeft="5dp"获取按钮和textview之间的空间.

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

对于具有xhdpi或以下密度或具有大屏幕的设备我正在屏幕下方(这个是完美的,因为我想要):

在此输入图像描述

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

在此输入图像描述

任何人都可以告诉我在哪里失踪?或者我的布局有什么错误?

我希望在普通/大屏幕设备中为4.2设备获得相同的布局屏幕.

提前致谢.

Ole*_*ich 7

它似乎Checkbox已在内部默认使用填充并覆盖它paddingLeft导致这些问题.您应该从XML中删除该属性.

如果您仍想调整填充,则必须以编程方式执行此操作.请参阅此答案:https://stackoverflow.com/a/4038195/832776

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

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Run Code Online (Sandbox Code Playgroud)