我正在使用示例WeatherListWidget的修改版本以更好地理解App小部件。事情很好 - 除非我嘗試用稍微複雜的佈局文件替換dark_widget_item和light_widget_item佈局文件。這裏是原始佈局:應用小部件中的LinearLayout
<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>
失敗。
事實上,它導致「對不起!應用程序啓動器(process com.android.launcher)意外停止,請重試。強制關閉」。
恢復TextView widget_item.xml修復了這個問題。我懷疑問題的一部分是我如何引用WeatherWidgetService.getViewAt()中的RemoteViews - 但我從DDMS或LogCat或其他任何東西獲得的幫助很少。
我沒有看到任何'layout_width'和'layout_height'屬性爲你的LinearLayout中的兩個TextViews - 它們是強制性的。另外,如果您希望兩個TextView都在另一個之上,則可以在LinearLayout中添加android:orientation =「vertical」。只需要記錄,通過在不同元素之間添加「\ n」,可以在單個TextView中將CharSequence分解爲多行。 – 2011-12-23 22:59:02
@MH:謝謝!實際上,我也想包含一個圖片,所以我認爲LinearLayout比CharSequence更好。 – westsider 2011-12-23 23:23:15
@MH:如果您將您的評論轉貼爲答案,我會標記爲答案。 – westsider 2011-12-23 23:23:51