Android AppWidget - 错误膨胀视图:无法解析索引处的属性

时间:2017-02-02 07:57:13

标签: android android-layout layout-inflater remoteview

我有一个产生此错误的AppWidget:

  

W / AppWidgetHostView:updateAppWidget找不到任何视图,使用   错误视图                                                         android.view.InflateException:二进制XML文件行#2:失败   解析索引1处的属性:TypedValue {t = 0x2 / d = 0x7f01009a a = -1}                                                         引起:java.lang.UnsupportedOperationException:无法解析属性   在索引1处:TypedValue {t = 0x2 / d = 0x7f01009a a = -1}

我可以判断错误是由布局的膨胀引起的,我可以将其固定在我的RemoteViews子类'RemoteViewsService.RemoteViewsFactory方法中创建新的getViewAt():< / p>

@Override
public RemoteViews getViewAt(int position) {
    […]
    final RemoteViews views = new RemoteViews(getPackageName(),
            R.layout.appwidget_list_item);
    […]

    return views;
}

注释掉这一行会删除这个特殊错误,但我无法弄清楚它所引用的布局文件有什么问题。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/layout_view"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="?listPreferredItemHeight">

    <TextView
        android:id="@+id/item_name"
        android:layout_width="0px"
        android:layout_height="match_parent"
        android:layout_weight="2"
        android:gravity="center_vertical"
        android:paddingEnd="?listPreferredItemPaddingRight"
        android:paddingStart="?listPreferredItemPaddingLeft"/>

</LinearLayout>

1 个答案:

答案 0 :(得分:2)

错误是因为在AppWidget布局中使用isn't possible使用主题属性(例如?listPreferredItemHeight)。这些是错误所指的“未解决的属性”。