我想显示一个小部件,它在小部件空间中加载已经工作的片段。我似乎无法找到任何处理将片段加载到窗口小部件的文档?任何人都可以帮助我吗?
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?
答案 0 :(得分:0)
首先,请查看此文档:https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
本节特别说明了窗口小部件布局可以使用的内容,它为您提供了包含所有可用布局类和窗口小部件类的列表。如果列表中没有任何内容,则无法在窗口小部件上运行。
如果你可以深入到那里的类源文件,你应该看到其中一些 - 开头的@RemoteView,这意味着这个类适用于小部件;如果某个类没有此标记,则表示您无法在小部件中使用它。