我正在使用示例 WeatherListWidget 的修改版本,以更好地了解 App Widget。一切都很好 - 除非我尝试用稍微复杂的布局文件替换 dark_widget_item 和 light_widget_item 布局文件。这是原始布局:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_item"
android:layout_width="match_parent"
android:layout_height="46dp"
android:paddingLeft="25dp"
android:gravity="center_vertical"
android:background="@drawable/item_bg_light"
android:textColor="#e5e5e1"
android:textSize="24sp" />
我希望能够有多个文本行。但:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget_item"
android:background="@drawable/item_bg"
android:layout_width="match_parent"
android:layout_height="46dp"
android:paddingLeft="25dp">
<TextView android:id="@+id/type_string"
android:textColor="#666666"
android:textSize="20sp" />
<TextView android:id="@+id/title_string"
android:textColor="#666666"
android:textSize="18sp" />
</LinearLayout>
失败。
实际上,它导致“对不起!应用程序启动器(进程com.android.launcher)已意外停止。请重试。强制关闭”。
恢复 TextView widget_item.xml 可以解决此问题。我怀疑问题的一部分是我如何在 WeatherWidgetService.getViewAt() 中引用 RemoteViews - 但我从 DDMS 或 LogCat 或其他任何东西中得到的帮助很少。