复选框在设备和模拟器上的不同外观

时间:2013-10-01 07:13:23

标签: android android-checkbox

我有带复选框的列表视图。问题在于设备和模拟器上的不同显示复选框。

以下是它在模拟器中的外观:

enter image description here

以及它在设备上的外观:

enter image description here

您可以看到设备复选框已切割右边缘。

这是@ drawable / custom_checkbox_design.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

     <item android:state_checked="true" android:drawable="@drawable/checked" />
     <item android:state_checked="false" android:drawable="@drawable/unchecked" />

</selector>

和行的布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <CheckBox
        android:id="@+id/ColChk"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="40dp"
        android:button="@drawable/custom_checkbox_design"
        android:layout_gravity="center_vertical|center_horizontal" />

          <TextView
            android:id="@+id/ColOpis"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:minLines="1"
            android:scrollHorizontally="false"
            android:text="Opis"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/ColCode"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Code"
            android:visibility="invisible" />
</LinearLayout>

我做错了什么?为什么在模拟器上显示正确?

2 个答案:

答案 0 :(得分:1)

使用XML的Android UI系统非常错误。它根据您使用的Android操作系统的版本而有很大不同。通常模拟器有最新的Android版本,而设备没有。您的布局文件似乎没有任何问题,只需尝试更改以下值:

android:layout_marginRight="40dp"
android:button="@drawable/custom_checkbox_design"

尝试为layout_marginRight使用不同的值并更改复选框的图像。 希望这能解决你的问题。

答案 1 :(得分:0)

我认为我找到了合适的解决方案。

而不是

android:button="@drawable/custom_checkbox_design"

应该是

 android:button="@null"
 android:background="@drawable/custom_checkbox_design"