【问题标题】:Android AppWidget - Error inflating view: Failed to resolve attribute at indexAndroid AppWidget - 膨胀视图错误:无法解析索引处的属性
【发布时间】:2017-02-02 07:57:13
【问题描述】:

我有一个产生此错误的 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}

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

@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>

【问题讨论】:

    标签: android android-layout layout-inflater remoteview


    【解决方案1】:

    该错误是由于在 AppWidget 布局中使用主题属性(例如?listPreferredItemHeight)引起的,其中isn't possible。这些是错误所指的“未解决的属性”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2021-11-03
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多