【问题标题】:Android Widget with Glance make around corners for SDK lower than 31带有 Glance 的 Android Widget 为低于 31 的 SDK 提供了便利
【发布时间】:2022-01-19 10:29:18
【问题描述】:

Announcing Jetpack Glance Alpha for app widgets。但是圆角不适用于低于 31 (Android 12) 的 SDK。 理想情况下,您希望以编程方式更改带圆角的背景颜色。

有没有人想办法解决这个问题?

【问题讨论】:

    标签: android kotlin widget android-jetpack-compose


    【解决方案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)
        ) {
            //...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-22
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多