GlanceAppWidget光速入门
最近工作中有用到GlanceAppWidget,正好可以水篇博客记录一下~
1.创建GalceAppWidget的子类
class NewsWidget : GlanceAppWidget(){
override suspend fun provideGlance(context: Context, id: GlanceId) {
provideContent {
Text(
text = "NewsWidget"
)
}
}
}
2.创建GlanceAppWidgetReceiver的子类
class NewsReceiver : GlanceAppWidgetReceiver() {
override val glanceAppWidget: GlanceAppWidget = NewsWidget()
}
光速撇一眼GlanceAppWidgetReceiver是谁的子类:
没错,是四大组件之一BroadcastReceiver,所以需要在AndroidManifest注册一下。
3.注册GlanceAppWidgetReceiver
<receiver android:name=".ui.widgets.messagebox.receiver.NewsReceiver"
android:label="@string/message_board"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/message_widget_info" />
</receiver>
4. 填写widget的配置文件信息
在res目录下的xml文件夹下创建对应的resource文件:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/rewards" //缩略图下的名称
android:minWidth="@dimen/rewardMinWidth" //最小宽度
android:minHeight="@dimen/rewardMinHeight" //最小高度
android:updatePeriodMillis="1800000" //多久更新一次
android:previewImage="@drawable/reward_widget" //缩略图
android:resizeMode="vertical|horizontal" //是否可横向或纵向拉伸
android:widgetCategory="home_screen"
/>
到目前为止,你的应用就已经有widget功能了!在桌面上长按图标就可以创建~
恭喜!你学会了给自己的APP添加小组件功能!!Happy Coding !