在Android小部件中显示一个片段。

3

我想展示一个小部件,在小部件空间加载一个已经工作的碎片。我似乎找不到任何处理将碎片加载到小部件中的文档?有人能帮忙吗?

widget_current.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">
<fragment android:layout_width="match_parent" 
          android:layout_height="match_parent"
          android:id="@+id/widgetCurrent" />
</LinearLayout>

widget_provider.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
                android:minWidth="40dp"
                android:minHeight="40dp"
                android:updatePeriodMillis="86400000"
                android:initialLayout="@layout/widget_current"
                android:resizeMode="horizontal|vertical"
                android:widgetCategory="home_screen">
</appwidget-provider>

UpcomingEventWidgets.kt

class UpcomingEventsWidget: AppWidgetProvider() {
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
    super.onUpdate(context, appWidgetManager, appWidgetIds)

    val remoteView = RemoteViews(context.packageName, R.layout.widget_current)

    appWidgetManager.updateAppWidget(appWidgetIds, remoteView)
}
}

如何将片段加载到 RemoteView 中?
1个回答

0
首先,请查看此文档: https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout 这一部分专门解释了 widget 布局可以使用什么,它提供了一个列表,列出所有可用的布局类和小部件类。如果不在列表中的任何内容,它将无法在小部件上工作。
如果您能深入研究这些类源文件,您应该会看到其中一些-在开头的 @RemoteView,这意味着该类适用于小部件; 如果一个类没有这个标记,这意味着您不能在小部件中使用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接