我在 jetpack compose 中创建了简单的卡片,在这里我设置了海拔,但它显示类型不匹配。
Card(
shape = RoundedCornerShape(20.dp),elevation = 10.dp
) {
Box(modifier = Modifier.height(200.dp)) {
Image(painter = painter, contentDescription = contentDescription,
contentScale = ContentScale.Crop)
}
}
Run Code Online (Sandbox Code Playgroud)
android android-cardview android-jetpack android-jetpack-compose android-compose-card
基本上是一样的吧?它们具有相同的属性。我真的不知道什么时候必须使用每一个。
从技术上讲,Cards 用于卡片视图,但 Surface 具有相同的属性,如elevation和border
android android-jetpack-compose android-compose-card android-jetpack-compose-surface
android android-cardview android-jetpack-compose android-compose-card
开始学习 Jetpack Compose。发生错误:类型不匹配:推断类型为 Dp 但预期为 CardElevation,我不明白问题是什么,请告诉我如何解决。

导入 androidx.compose.ui.unit.dp 库,并更新了 Jetpack Compose 版本,预计会有所帮助
我发现这种方法Border(1.dp, Color.Black)不能使用 Card 视图的边框属性,解决它的最佳方法是什么?
android android-cardview android-jetpack-compose android-compose-card
当背景颜色具有一定透明度时, Android Jetpack composeCard会在卡片周围绘制边框。这是它在 AS 中的样子:
但这是它在应用程序中的样子:
如果我将背景设置为纯色,它就可以工作,但默认情况下backgroundColor是来自材质的表面颜色(在我的应用程序中val white850 = Color(0xD9FFFFFF)),它看起来像上图所示。
@Composable
fun TraitCard(trait: Trait) {
Card(
shape = MaterialTheme.shapes.small,
modifier = Modifier.size(width = 192.dp, height = 56.dp)
) {
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.Start
) {
Icon(
imageVector = Icons.Rounded.ChildFriendly,
contentDescription = "",
modifier = Modifier
.fillMaxHeight()
.background(color = MaterialTheme.colors.background)
.aspectRatio(1f)
.padding(8.dp),
tint = MaterialTheme.colors.onBackground
)
Text(
text = trait.name,
style = MaterialTheme.typography.h3,
modifier = Modifier.padding(horizontal = 16.dp),
)
}
} …Run Code Online (Sandbox Code Playgroud) Icon尽管可组合项内的可绘制对象是IconButton白色的,但它是黑色的。当前设置的下图显示了背景右上角的垃圾桶图标alpha。我该如何解决这个问题?
@Composable
fun AppImage(
modifier: Modifier = Modifier,
imageUri: Uri = Uri.EMPTY,
contentScale: ContentScale = ContentScale.None,
contentDescription: String? = null,
loadingImage: @Composable (SubcomposeAsyncImageScope.(AsyncImagePainter.State.Loading) -> Unit)? = null,
successResult: @Composable (SubcomposeAsyncImageScope.(AsyncImagePainter.State.Success) -> Unit)? = null,
errorResult: @Composable (SubcomposeAsyncImageScope.(AsyncImagePainter.State.Error) -> Unit)? = null
) {
Card(
modifier = Modifier
.height(250.dp)
.width(350.dp)
.padding(15.dp)
.clickable(
indication = null,
interactionSource = remember { MutableInteractionSource() }) {
},
elevation = 7.dp
) {
Box(
modifier = Modifier
.padding(16.dp)
.wrapContentSize(Alignment.Center)
) { …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-compose-card android-compose-image