【问题标题】:Can't convert to dimension: type=0x12 [duplicate]无法转换为维度:type=0x12 [重复]
【发布时间】:2016-08-06 07:12:45
【问题描述】:

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

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)

【问题讨论】:

  • 您将 id 分配给 android:layout_marginRight 而不是维度。

标签: android xml android-layout


【解决方案1】:

从以下代码中删除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" />

您不能将视图作为边距。

【讨论】:

  • 谢谢大佬,节省我的时间
【解决方案2】:

来自文档:ViewGroup.MarginLayoutParams

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

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

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

android:layout_marginStart : 指定此视图开始侧的额外空间。这个空间在这个视图的范围之外。边距值应该是正数。 可能是一个维度值,它是一个浮点数加上一个单位,如“14.5sp”。可用单位有:px(像素)、dp(与密度无关的像素)、sp(基于首选字体大小的缩放像素)、in(英寸)和 mm(毫米)。

所以该行必须更改为:

android:layout_marginStart = "10dp"

android:layout_marginLeft="10dp"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-09
    • 2018-09-29
    相关资源
    最近更新 更多