【发布时间】:2017-04-04 14:17:33
【问题描述】:
我正面临这个(对我而言)奇怪的问题。 在使用 Xamarin Studio 几年后,我选择使用 VisualStudio 2015 的插件。我目前正在从事一个现场维护项目,所以这是我第一次迁移。在解决了 RecyclerView 和 CardView 小部件的一些问题后,我面临着这个新问题,在 Xamarin Studio 中从未见过。 我有一个 ViewHolder 项目的简单布局,它使用选择器作为背景。这是选择器(res/color/item_bg_selector.xml):
<?xml version="1.0" encoding="UTF-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="#fffff2e6" />
<item android:state_selected="true" android:color="#ffabfdc3" />
<item android:color="@android:color/transparent" />
</selector>
这是项目布局(res/layout/rowSpare.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="2dp"
android:background="@color/item_bg_selector">
<TextView
android:id="@+id/tvSpareCode"
android:layout_width="0dp"
android:layout_weight="@integer/spareCode"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvSpareDescription"
android:layout_width="0dp"
android:layout_weight="@integer/spareDescPrice"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvSparePrice"
android:layout_width="0dp"
android:layout_weight="@integer/sparePrice"
android:layout_height="wrap_content"
android:gravity="right"
android:textColor="@color/black"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/tvSpareQuantity"
android:layout_width="0dp"
android:layout_weight="@integer/spareQuant"
android:layout_height="wrap_content"
android:gravity="right"
android:textColor="@color/black"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
这是出现错误的自定义适配器的摘录:
public class adSpareList : RecyclerView.Adapter
{
....
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.rowSpare, parent, false);
itemView.Clickable = true;
SpareItemViewHolder vh = new SpareItemViewHolder(itemView, OnClick);
return (vh);
}
}
无论何时执行,OnCreateView 的第一行都会出现此错误:
Unhandled Exception
Android.Views.InflateException: Bonary XML file line #1: Error inflating class <unknown>.
没有其他信息。相同的布局在 Xamarin Studio 上运行良好。如果我删除 android:background="@color/item_bg_selector",或者我用一个简单的 android:background="@android:color/transparent" 代替它,那么整个事情就可以正常工作,但这不是我之前取得的结果。 任何帮助将不胜感激。
鲁道夫。
【问题讨论】:
-
你把选择器放在哪里了?如果在drawable文件夹下,或许你可以试试
@drawable/item_bg_selector。
标签: android visual-studio xamarin xamarin.android