Material3 AlertDialog 在圆角后面有不需要的颜色

Bob*_*sky 2 android-jetpack-compose android-jetpack-compose-material3 material3

我正在迁移到 Material 3,现在我的警报对话框的圆角下方有不需要的颜色。

如何删除不需要的颜色并获得漂亮的圆形对话框?

在此输入图像描述

我正在使用 1.0.0 版本的 androidx.compose.material3.AlertDialog。

这是其中一个对话框的代码

@Composable
fun NewClientSourceDialog(
    onDoNothingClick: () -> Unit,
    onImportClick: () -> Unit,
    onAddNewClick: () -> Unit,
) {
    AlertDialog(
        onDismissRequest = onDoNothingClick,
        text = {
            DialogText(id = R.string.clients_new_client_source)
        },
        confirmButton = {
            Column(
                modifier = Modifier
                    .padding(all = 8.dp)
                    .fillMaxWidth(),
                verticalArrangement = Arrangement.Bottom,
                horizontalAlignment = Alignment.CenterHorizontally,
            ) {
                DialogButton(
                    onClick = onImportClick,
                    captionId = R.string.clients_import_contacts,
                )
                DialogButton(
                    onClick = onAddNewClick,
                    captionId = R.string.clients_create_from_scratch,
                )
                DialogButton(
                    onClick = onDoNothingClick,
                    captionId = R.string.clients_new_client_dismiss
                )
            }
        },
    )
}


@Composable
fun DialogButton(
    onClick: () -> Unit,
    @StringRes captionId: Int,
    destructive: Boolean = false,
) = TextButton(onClick = onClick) {
    Text(
        text = stringResource(id = captionId),
    )
}
Run Code Online (Sandbox Code Playgroud)

Bob*_*sky 5

该问题是由我的主题配置引起的/res/values/themes.xml

我在那里有这个自动生成的内容:

<resources>
    <!-- Base application theme. These colors don't affect the Composable functions, just the color
     of the Status Bar. For the colors used by the Composable functions, see Theme.kt -->
    <style name="Theme.MyTheme" parent="android:Theme.Material.Light.NoActionBar">
        <item name="android:statusBarColor">@color/status_bar</item>
        <item name="android:background">@color/status_bar</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

将其更改为

<resources>
    <style name="Theme.MyTheme" parent="android:Theme.Material.Light.NoActionBar" />
</resources>
Run Code Online (Sandbox Code Playgroud)

解决了这个问题。