Jetpack compose 组件中获取两个或多个修饰符的修饰符参数应该如何命名?

Sep*_*hah 5 android modifier kotlin android-jetpack-compose

如果我们有一个获取两个或多个修饰符的 compose 组件,我们应该如何处理它?\n我的意思是修饰符的命名,而 lint 抱怨更改修饰符参数的名称

\n

易于理解的示例代码:

\n
@Composable\n    private fun CompletionSection(iconModifier: Modifier, textModifier: Modifier, isActivated: Boolean, newText: String?) {\n        if (isActivated) {\n            Icon(\n                painter = painterResource(R.drawable.ds_ic_check_circle),\n                modifier = iconModifier\n                    .wrapContentSize()\n                    .padding(top = 18.dp),\n                tint = MaterialTheme.colors.positive,\n                contentDescription = null\n            )\n        } else if (!newText.isNullOrBlank()) {\n            Surface(\n                modifier = textModifier.padding(top = 18.dp),\n                shape = RoundedCornerShape(32.dp),\n                border = BorderStroke(width = 2.dp, color = MaterialTheme.colors.primary.copy(alpha = 0.6f)),\n            ) {\n                Text(\n                    overflow = TextOverflow.Ellipsis,\n                    maxLines = 1,\n                    fontSize = 11.sp,\n                    color = MaterialTheme.colors.primary.copy(alpha = 0.6f),\n                    text = newText,\n                    modifier = Modifier\n                        .defaultMinSize(minHeight = 20.dp)\n                        .wrapContentSize()\n                        .padding(horizontal = 6.dp, vertical = 2.dp),\n                    style = MaterialTheme.typography.android.caption2\n                )\n            }\n        }\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

这里,使用函数的地方\xe2\x86\x92

\n
ConstraintLayout(\n    modifier = Modifier.fillMaxSize(),\n    constraintSet = decoupledConstraints(\n        marginSpacing02 = marginSpacing02,\n        marginSpacing01 = marginSpacing01,\n        entity = entity\n    )\n) {\n    \n    CompletionSection(\n        iconModifier = Modifier.layoutId("completedIcon"),\n        textModifier = Modifier.layoutId("newTextField"),\n        isActivated = isActivated,\n        newText = newText\n    )\n}\n
Run Code Online (Sandbox Code Playgroud)\n

li2*_*li2 2

https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier

接受应用于特定子组件的修饰符的foo可组合项应命名参数fooModifier,并遵循上述默认值和行为的相同准则。子组件修饰符应组合在一起并遵循父可组合项的修饰符。例如:

@Composable
fun ButtonBar(
    onOk: () -> Unit,
    onCancel: () -> Unit,
    modifier: Modifier = Modifier,
    buttonModifier: Modifier = Modifier
) {
    Row(modifier) {
        Button(onCancel, buttonModifier) {
            Text("Cancel")
        }
        Button(onOk, buttonModifier) {
            Text("Ok")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)