私はApp Widgetsの理解を深めるために、WeatherListWidgetのサンプル版を修正しています。私は、dark_widget_itemとlight_widget_itemのレイアウトファイルをやや複雑なレイアウトファイルに置き換えようとした場合を除いて、問題はありません。ここに元のレイアウトがあります:Appウィジェットの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>
が失敗します。
実際には、「申し訳ありません!アプリケーションランチャー(プロセスcom.android.launcher)が予期せず停止しました。もう一度やり直してください。
TextViewを復元すると、widget_item.xmlがこれを修正します。私は問題の一部がWeatherWidgetService.getViewAt()のRemoteViewsをどのように参照しているのか疑問に思っていますが、DDMSやLogCatなどのヘルプはほとんど役に立ちません。
LinearLayoutの両方のTextViewに 'layout_width'と' layout_height'属性がありません - 必須です。また、2つのTextViewが互いに重なり合うようにするには、 'android:orientation =" vertical "をLinearLayoutに追加します。また、レコードだけで、異なる要素の間に "\ n"を追加することによって、単一のTextViewで複数の行にCharSequenceを分割することができます。 –
@MH:ありがとう!実際には、画像も含めたいので、LinearLayoutはCharSequenceよりも優れていると私は思います。 – westsider
@MH:あなたのコメントを回答として再投稿すると、回答としてマークされます。 – westsider