带有 Glance 的 Android Widget 为低于 31 的 SDK 提供了便利
Posted
技术标签:
【中文标题】带有 Glance 的 Android Widget 为低于 31 的 SDK 提供了便利【英文标题】:Android Widget with Glance make around corners for SDK lower than 31 【发布时间】:2022-01-19 10:29:18 【问题描述】:Announcing Jetpack Glance Alpha for app widgets。但是圆角不适用于低于 31 (android 12) 的 SDK。 理想情况下,您希望以编程方式更改带圆角的背景颜色。
有没有人想办法解决这个问题?
【问题讨论】:
【参考方案1】:我遇到了这个问题。而且,我解决了背景可绘制的问题。为您的根提供背景可绘制对象。
MyWidgetClass.kt
@Composable
override fun Content()
Column(
modifier = GlanceModifier
.width(170.dp).height(130.dp)
.background(ImageProvider(R.drawable.background_widget))
.padding(8.dp)
)
//...
background_widget.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFFFF" />
<corners android:radius="10dp" />
</shape>
【讨论】:
这是最好的解决方案。这个版本的圆角与你在 sdk 31+ 上得到的唯一不同的是,为半径之外的子视图剪裁【参考方案2】:这是一种添加圆角的简单方法,但它适用于 Android S +。
@Composable
override fun Content()
Column(
modifier = GlanceModifier
.width(170.dp).height(130.dp)
.background(color = Color.Gray)
.cornerRadius(8.dp)
)
//...
【讨论】:
以上是关于带有 Glance 的 Android Widget 为低于 31 的 SDK 提供了便利的主要内容,如果未能解决你的问题,请参考以下文章