6

我最近开始使用 genymotion 而不是经典的 Android 虚拟设备,但我遇到了一些问题。当我尝试运行我的应用程序时,我收到了这个错误。

Can't convert to dimension: type=0x1

我来自 LayoutInflater..当我在 Genymotion 中运行它时,它说有一些布局参数的类型不好..下面是来自 android studio 的两个屏幕截图。第一个是在 Nexus 4 上运行应用程序时拍摄的,第二个来自 Genymotion。 这是我在 Nexus 4 上测试应用程序时拍摄的

这是在 Genymotion 虚拟设备上运行时拍摄的

两者都应该运行 Jelly Bean,唯一的区别是 Genymotion 在 API 16 上,而 Nexus 4 在 4.2.2 上运行最新,因此 API 17..

问题来自我的自定义列表视图适配器 - 来自它的 getView 方法,所以我认为它必须与其中一种布局有关。(我有两种不同类型的列表项)

list_heading.xml

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="wrap_content">


<TextView
        android:id="@+id/listViewHeaderText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="8dp"
        android:paddingTop="10dp"
        android:paddingBottom="3dp"
        android:text="Nacionále"
        android:textAppearance="?android:attr/listSeparatorTextViewStyle"
        android:textColor="@color/main_cvut"/>


<RelativeLayout
        android:id="@+id/listViewHeaderLine"
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:background="@color/main_cvut"/>
</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/listItem"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/list_item_layout"
            android:clickable="true"
            android:focusable="true"
            android:paddingTop="?android:attr/listPreferredItemPaddingStart"
            android:minHeight="?android:attr/listPreferredItemHeight">

<TextView
        android:id="@+id/itemTitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Title"
        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

<TextView
        android:id="@+id/itemDescription"
        android:textColor="@android:color/darker_gray"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="description"
        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
        android:textAllCaps="true"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:layout_marginBottom="?android:attr/listPreferredItemPaddingEnd"
        android:paddingBottom="?android:attr/listPreferredItemPaddingRight"
        android:layout_below="@+id/itemTitle"/>

<ImageView
        android:id="@+id/itemIcon"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="16dp"
        android:layout_centerVertical="true"
        android:layout_alignParentStart="true"/>

<RelativeLayout
        android:id="@+id/itemBottomLine"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="?android:attr/listPreferredItemPaddingEnd"
        android:background="#b5b5b5"
        android:layout_alignParentEnd="false"/>
</RelativeLayout>

我试图删除所有那些引用的填充,边距,..但它完全没有效果..我还尝试在标准的android模拟器中使用API​​​​16运行它,它也不起作用..请你告诉我该代码的哪一部分与该版本不兼容?

4

1 回答 1

6

始终查看属性的 API 级别:

<RelativeLayout
    ...
    ...
    android:layout_alignParentEnd="false"/>

android:layout_alignParentEnd 在 API 级别 17 中添加

http://developer.android.com/reference/android/widget/RelativeLayout.html#ALIGN_PARENT_END

于 2013-07-08T11:19:38.560 回答