漳浦网站设计,两学一做网站是多少钱,龙岩抖音seo搜索排名,马蹄网室内设计使用Jetpack Glance创建Android Widget
Jetpack Glance发布#xff0c;让我们使用Google提供的Jetpack Glance创建一个联系人列表小部件。 https://developer.android.com/jetpack/compose/glance 什么是Glance#xff1f;
Jetpack Glance是一个使用Kotlin API创建小型、轻…使用Jetpack Glance创建Android Widget
Jetpack Glance发布让我们使用Google提供的Jetpack Glance创建一个联系人列表小部件。 https://developer.android.com/jetpack/compose/glance 什么是Glance
Jetpack Glance是一个使用Kotlin API创建小型、轻量级和高效的应用程序小部件的框架。它设计用于显示用户需要一目了然的信息。
我们将构建什么
正如我在开头提到的我们将构建一个联系人列表小部件。以下是它的样子。
设置 根据您需要的功能在应用程序模块中添加依赖项。
dependencies {// For AppWidgets supportimplementation(androidx.glance:glance-appwidget:1.0.0-beta01)// For interop APIs with Material 2implementation(androidx.glance:glance-material:1.0.0-beta01)// For interop APIs with Material 3implementation(androidx.glance:glance-material3:1.0.0-beta01)
}创建ContactListWidget
创建一个名为ContactListWidget的新kt文件。我们首先要做的是继承GlanceAppWidget。然后覆盖provideGlance函数。在这里我们将构建小部件的UI。
打开provideContent块这个方法非常类似于setContent它允许我们使用Jetpack Compose的composables。
override suspend fun provideGlance(context: Context, id: GlanceId) {provideContent {// ...}
}在创建小部件之前让我们为它创建一个主题。
主题
首先我们要创建一个colorScheme。在我的例子中我只是从应用程序主题中删除了private属性然后在这里调用了它们。
private val colorScheme ColorProviders(light LightColorScheme,dark DarkColorScheme
)之后我们可以调用GlanceTheme并将新的colorScheme传递给它。
override suspend fun provideGlance(context: Context, id: GlanceId) {provideContent {GlanceTheme(colors colorScheme) {ContactListWidget.Widget()}}
}现在让我们在这个类中创建一个名为Widget的单独函数并用Composable注解它。
记得导入Glance组件而不是material组件。另外一件事是Glance组件使用GlanceModifiers。
Composable
private fun Widget() {Box(modifier GlanceModifier.background(GlanceTheme.colors.background).padding(15.dp).cornerRadius(20.dp) // Only works for Android versions 13) {LazyColumn {items(10) {Row(modifier GlanceModifier.padding(vertical 10.dp,horizontal 5.dp).clickable {// Call the person},verticalAlignment Alignment.CenterVertically) {Image(provider ImageProvider(R.drawable.person),contentDescription null)Spacer(modifier GlanceModifier.width(10.dp))Text(text John Doe)}}}}
}我们还需要创建一个GlanceAppWidgetReceiver。这将创建我们将在屏幕上看到的小部件视图。
class ContactListWidgetReceiver : GlanceAppWidgetReceiver() {override val glanceAppWidget: GlanceAppWidgetget() ContactListWidget
}现在我们需要创建一个XML文件用于设置小部件的一些属性。Right-click on res New Resource File xml文件内容如下
?xml version1.0 encodingutf-8?
appwidget-provider xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:descriptionstring/app_nameandroid:minWidth80dpandroid:minHeight80dpandroid:resizeModehorizontal|verticalandroid:widgetCategoryhome_screen /最后添加receiver到AndroidManifest.xml中
manifestapplicationreceiverandroid:name.ContactListWidgetReceiverandroid:exportedtrueintent-filteraction android:nameandroid.appwidget.action.APPWIDGET_UPDATE //intent-filtermeta-dataandroid:nameandroid.appwidget.providerandroid:resourcexml/contact_list_widget_info //receiver/application
/manifestGitHub https://github.com/daniatitienei/GlanceWidgetCourse.git