我正在尝试使用布局作为选择器但是在扩展视图和应用程序给出时出错 ANR低于
org.xmlpull.v1.XmlPullParserException:二进制XML文件行#2: 无效的可绘制标记LinearLayout 在 android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:877)
你有什么想法
谢谢
抽拉/ selector_map_all.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@layout/map_atm_selected" android:state_selected="true" />
<item android:drawable="@layout/map_atm" />
</selector>
布局/ map_atm.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aresource="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/List_color2"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ico_info" />
<TextView
style="@style/TextViewNormalOpac"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Hepsi" />
</LinearLayout>
布局/ map_atm_selected.xml
<? xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aresource="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/List_color2"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ico_info" />
<TextView
style="@style/TextViewNormalOpac"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Hepsi" />
</LinearLayout>
答案 0 :(得分:1)
您的异常的原因是因为您无法在选择器中使用LinearLayout
,因为StateListDrawable
类(实际上是选择器)可以保持仅状态为Drawable对象,但是LinearLayout
不是Drawable。您可以在createFromXmlInner
方法或here内检查可用的Drawables(除普通图片外)。