这是我有生以来第一次学习编程,我已经花了大约两周的时间通过免费课程学习Kotlin,特别是在Android Studio中学习了一周的Jetpack Compose.我已经坚持了两天的Noobie实践,但我在互联网上遇到的每一个答案都假设我知道的比我知道的要多.这种做法是让象限像这样的CorrectQuadrant,但除非我做了一个对我来说没有意义的改变,否则我只能得到像这样的IncorrectQuadrant.
所以问题是我不太理解修饰符参数,所以试了又试,最后我下载了解决方案代码并找到了错误,但我不明白为什么是错误.在下面的代码中,在私有函数"ComposeInfoCard"中,您可以看到用(=)括起来的修饰符列参数.如果我用小写形式写参数(修饰符=修饰符),我会得到正确的象限.如果我按原样编写(Modify=Modify),这就是我认为它是正确的,私有函数中的Modify参数显示"参数Modify永远不会被使用",但事实并非如此,因为我在Compose象限函数中将其用于权重修饰符4次.
有人能解释一下为什么它必须是小写的吗?如果你不介意的话,可以解释一下对象修饰符,就像我在编程方面是一个彻头彻尾的新手和智障一样?谢谢.
@Composable
fun ComposeQuadrant(){
Column (modifier = Modifier.fillMaxWidth()){
Row (modifier = Modifier.weight(1f)){
ComposeInfoCard(
title = stringResource(R.string.title1),
description = stringResource(R.string.description1),
backgroundColor = Color(0xFFEADDFF),
modifier = Modifier.weight(1f)
)
ComposeInfoCard(
title = stringResource(R.string.title2),
description = stringResource(R.string.description2),
backgroundColor = Color(0xFFD0BCFF),
modifier = Modifier.weight(1f)
)
}
Row (Modifier.weight(1f)){
ComposeInfoCard(
title = stringResource(R.string.title3),
description = stringResource(R.string.description3),
backgroundColor = Color(0xFFB69DF8),
modifier = Modifier.weight(1f)
)
ComposeInfoCard(
title = stringResource(R.string.title4),
description = stringResource(R.string.description4),
backgroundColor = Color(0xFFF6EDFF),
modifier = Modifier.weight(1f)
)
}
}
}
@Composable
private fun ComposeInfoCard(
title: String,
description: String,
backgroundColor: Color,
modifier: Modifier = Modifier) {
=========================================================
Column (modifier = Modifier
=========================================================
.padding(16.dp)
.background(backgroundColor)
.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
){
Text(
text = title,
fontWeight = FontWeight.Bold,
modifier = Modifier.padding(bottom = 16.dp)
)
Text(
text = description,
textAlign = TextAlign.Justify
)
}
}