我想用Button里面的CircularProgressIndicator,而不是Text. 这是我的按钮仅使用文本时的外观:

Button(
    onClick = { }
) {
    Row() {
        Text("Some action")
    }
}

enter image description here

一旦我加上CircularProgressIndicator,我的按钮就变得更高(更高):

Button(
    onClick = {  }
) {
    Row() {
        CircularProgressIndicator(color = Color.White)
        Text("Some action")
    }
}

enter image description here

那么,我如何才能在保持Button的初始身高的同时,在Button的基础上加CircularProgressIndicator呢?

推荐答案

使用ButtonDefaults,你可以很容易地确定按钮的高度.另外,对于CircularProgressIndicator,我从ButtonDefaults.IconSize增加了固定大小

var loading by remember { mutableStateOf(false) }

Button(
    onClick = { loading = !loading },
    modifier = Modifier.height(ButtonDefaults.MinHeight).align(Alignment.Center)
) {
    Row(
        verticalAlignment = Alignment.CenterVertically,
        horizontalArrangement = Arrangement.spacedBy(8.dp)
    ) {
        if (loading) {
            CircularProgressIndicator(
                color = Color.White,
                modifier = Modifier.size(ButtonDefaults.IconSize),
                strokeWidth = 2.dp
            )
        }
        Text("Some action")
    }
}

Result:

enter image description here

Android相关问答推荐

view喷气背包中找不到模型组成

如何在"不同活动"中添加不同按钮?

如何检测HitTest是否命中给定的网格对象?

穿戴与iPhone连接的安卓操作系统

两首合成曲的喷气背包动画

在Delphi中使用OpenCV for Android在使用JLIST时抛出错误

ERR_SSL_VERSION_OR_CIPHER_MISMATCH - Android Webview

将输出写入已发布的 Android 应用程序中的日志(log)文件?

如何在jetpack compose中使可组合的屏幕zoom 到不同的手机(屏幕)尺寸?

了解 CoroutineScope(Job() + Dispatchers.Main) 语法

Jetpack Compose 中的用户在线指示器

在 Android 房间迁移中获取上下文

发布 MAUI 应用程序时出现遇到重复程序集错误

当手表与手机断开连接时,有没有办法在我的 Wear OS 应用程序中显示操作系统级别的图标?

我的 React Native 在 11 月 4 日之前运行良好,但现在在运行 yarn android 时抛出异常

JCenter 是否永久关闭(10 月 31 日)?

Android:为什么 ICICI iMobile Pay 应用程序在我的应用程序中显示root/jailbroken设备?

Android Studio Emulator Internet 连接问题仅是第一次

Kotlin Compose forEach 中的负间距

现代Android中的后台处理