android - App Widget 中的 LinearLayout

标签 android android-appwidget remoteview

我正在使用示例 WeatherListWidget 的修改版本,以更好地了解 App Widgets。一切都很好——除非我尝试用稍微复杂的布局文件替换 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 或其他任何地方得到的帮助很少。

最佳答案

谢谢大家,我收到通知了。 (因此需要用户名具有 length > 2,因此是点)

根据评论回答: 我没有看到 LinearLayout 中两个 TextView 的任何 layout_widthlayout_height 属性 - 它们是强制性的。此外,如果您希望两个 TextView 位于彼此之上,请将 android:orientation="vertical" 添加到 LinearLayout。只是为了记录,您可以通过在不同元素之间添加“\n”将单个 TextView 中的 CharSequence 分成多行。

如果您还打算包含图像,那么使用 LinearLayout 可能比使用单个 TextView 确实更好,尽管您可能会使用后者的固有可绘制选项。不过,这可能会有点困惑,尤其是如果您计划对不同的文本行使用不同的样式……并非不可能,但我会坚持使用 LinearLayout。 ;)

关于android - App Widget 中的 LinearLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8621334/

相关文章:

java - 如何在android studio中单击按钮时将行添加到listView?

android - 如何获取与 appwidget ID 关联的 appwidget 布局

java - RemoteViewsFactory 中的 onClickPendingIntent

android - 将 ImageView 从 URL 加载到主屏幕小部件的 RemoteView

java - Android Studio Spinner 导致应用程序在打开之前崩溃

java - 更改 CalendarView 中的 "Month"文本颜色

android - 为什么即使我有配置 Activity ,也会为我的小部件调用 onUpdate()?

android - 如何每天更新主屏幕小部件

android - 使用 RemoteViews 为 TextClock 设置时区

java - UI Automator TestProject.jar 在设备上的位置