用途:在编写或评审 Jetpack Compose 布局 API 时,规范 composable 的 modifier 参数与布局写法。核心原则是:发出布局的 composable 是父级放置的叶子,父级决定位置、尺寸、对齐与内边距,composable 只负责内部结构。
主要能力与规则:一、为发出布局的 composable 声明名为 modifier、默认值为 Modifier 的参数,位置在必需参数之后、内容/lambda 参数之前,并应用到根布局,不硬编码 .fillMaxWidth()、.padding() 等根布局决策(仅属于组件身份特征、如头像的 .clip(CircleShape) 可保留,且放在调用方 modifier 之后)。二、把调用方 modifier 放在链首(最外层),使调用方的 .size()、.padding() 能覆盖组件默认值。三、用一条流式链构造 modifier,而非 var 逐步重新赋值;短链可内联,条件片段用 .then(if (c) Modifier.x() else Modifier)。四、参数名 modifier 的链达到三次及以上调用时,多行书写、每行一次调用。五、当布局的唯一内容是单个 if 时,把 if 提到布局外;若布局承载 modifier、contentAlignment、horizontalArrangement 等语义参数,或存在兄弟内容、if/else 两分支都产出内容,则保留原样。
适用场景:编写或评审 Box、Column、Row、LazyColumn、Text、Image、Surface、Card、Layout 等布局类 composable 时;发现缺少 modifier 参数、声明未使用、传给了子节点、链中用 var 或单行超过三次调用、应提条件未提时。
限制与例外:不发出布局节点的 composable、@Preview、测试专用 composable、以 modifier 为必需首参的内部布局原语、由动画状态程序化拼装 modifier、在数据类或 builder 中存 modifier 的 slot API、固定重组形状的测试 composable,不适用这些规则。
资料未提供该技能的安装命令、依赖、许可或收费信息。