使用Jetpack Compose Glance API开发桌面小部件遇按钮占满问题
Glance App Widget按钮占满容器的解决方案
问题核心在于Glance的Button组件默认会填充父容器的宽度,所以在Row布局中,两个Button会各自抢占可用宽度,最终撑满整个小部件区域。
只需给每个Button添加wrapContentWidth()修饰符,让按钮仅包裹自身内容宽度即可解决问题,修改后的代码如下:
@Composable private fun MyContent() { Column( modifier = GlanceModifier.fillMaxSize(), verticalAlignment = Alignment.Top, horizontalAlignment = Alignment.CenterHorizontally ) { Text(text = "hello", modifier = GlanceModifier.padding(12.dp)) Row(horizontalAlignment = Alignment.CenterHorizontally) { Button( text = "A", onClick = actionStartActivity<MainActivity>(), modifier = GlanceModifier.wrapContentWidth() ) Button( text = "B", onClick = actionStartActivity<MainActivity>(), modifier = GlanceModifier.wrapContentWidth() ) } } }
如果需要按钮之间保留间距,还可以给Button添加额外的水平padding:
modifier = GlanceModifier.wrapContentWidth().padding(horizontal = 6.dp)
内容的提问来源于stack exchange,提问作者Raghavendra Hande
相关产品推荐
相关产品推荐

