0

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

这是它在模拟器中的样子:

在此处输入图像描述

以及它在设备上的外观:

在此处输入图像描述

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

这是@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>

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

4

2 回答 2

1

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

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

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

于 2013-10-01T07:23:17.513 回答
0

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

代替

android:button="@drawable/custom_checkbox_design"

应该

 android:button="@null"
 android:background="@drawable/custom_checkbox_design"
于 2013-10-01T08:19:59.730 回答