无法转换为维度:type = 0x12

时间:2016-04-14 15:50:42

标签: android xml android-layout

我的闹钟设计布局listView如下图所示。

enter image description here

custom_row_view

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="10dp">

            <TextView
                android:id="@+id/time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="30sp"
                android:text="Time"
                android:paddingLeft="40dp"
                android:paddingTop="15dp"
                android:textColor="@color/black"
                android:textStyle="bold"
                />

            <ToggleButton
                android:id="@+id/switchAlarm"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textOff=""
                android:textOn=""
                android:layout_marginLeft="200dp"
                android:drawableTop="@mipmap/switch_alarm"
                />



        </RelativeLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="10dp"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Text"
            android:id="@+id/textView" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Text"
            android:layout_marginRight="@+id/textView"
            android:id="@+id/textView1" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Text"
                android:layout_marginRight="@+id/textView1"
                android:id="@+id/textView2" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Text"
                android:layout_marginRight="@+id/textView2"
                android:id="@+id/textView3" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Text"
                android:layout_marginRight="@+id/textView3"
                android:id="@+id/textView4" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Text"
                android:layout_marginRight="@+id/textView4"
                android:id="@+id/textView5" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="5dp"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="Text"
                android:layout_marginRight="@+id/textView5"
                android:id="@+id/textView6" />

        </LinearLayout>

    </LinearLayout>

当调用此布局时,我的应用程序崩溃了。

4-14 23:49:10.491  31175-31175/com.example.seng.clock E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12
            at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:471)
            at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:5906)
            at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1854)
            at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1766)
            at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:58)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:748)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
            at Adapter.MyCustomBaseAdapter.getView(MyCustomBaseAdapter.java:68)
            at android.widget.AbsListView.obtainView(AbsListView.java:2232)

2 个答案:

答案 0 :(得分:11)

从以下代码中删除android:layout_marginRight="@+id/textView"

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="5dp"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Text"
    android:layout_marginRight="@+id/textView"
    android:id="@+id/textView1" />

您不能将视图作为保证金。

答案 1 :(得分:0)

来自文档:ViewGroup.MarginLayoutParams

参数(我提供了可以使用的公共属性。但是还有更多),只接受正值,不应该用作对视图中另一个视图,元素或子项的引用。

  • layout_marginStart :指定此视图顶部的额外空间。
  • layout_marginRight :指定此视图顶部的额外空间。
  • layout_marginLeft :指定此视图顶部的额外空间。
  • layout_marginVertical :指定此视图顶部和底部的额外空间。
  • layout_marginHorizo​​ntal :指定此视图左侧和右侧的额外空间。

而不是视图参考,根据文档:

  

android:layout_marginStart:   指定此视图起始侧的额外空间。这个空间超出了这个视野的范围。保证金价值应为正数。   可以是一个维度值,它是一个浮点数,附加一个单位,例如&#34; 14.5sp&#34;。可用单位为: px (像素), dp (与密度无关的像素), sp (基于首选字体大小的缩放像素),< strong> in (英寸), mm (毫米)。

因此必须将该行更改为:

android:layout_marginStart = "10dp"

android:layout_marginLeft="10dp"