在 Jetpack Compose 中,我们看到所有内置可组合项都具有扁平化输入,这是有意的吗?或者用数据类包装太多的输入(这是良好且干净的做法)具有相同的性能?
考虑这个样本
data class SettingsItemEntity(
val title: String,
val description: String? = null,
@DrawableRes val imageResId: Int? = null,
val isChecked: Boolean? = null,
val showDivider: Boolean = true,
val onItemClicked: () -> Unit = {},
val onCheckedChange: (isChecked: Boolean) -> Unit = {},
val buttonLabel: String? = null,
val onButtonClicked: () -> Unit = {},
)
@Composable
fun SettingsItem(
entity: SettingsItemEntity,
modifier: Modifier = Modifier
) {
...
}
Run Code Online (Sandbox Code Playgroud)
在性能(重组)中将输入作为数据类或扁平输入发送会更好吗?或者有相同的结果?
换句话说,当我们将一个数据类发送给可组合函数时,我们只更改其中的一个成员,是否会导致整个函数重新组合?或者重组方面,它与使用扁平输入时具有相同的性能吗?
预先感谢您的帮助。
如果我们有一个获取两个或多个修饰符的 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 …Run Code Online (Sandbox Code Playgroud) 是否有任何工具或方法可以测试 Jetpack compose 中一段代码是否发生重组?
android kotlin android-jetpack-compose compose-recomposition
我想要一个水平点指示器,它在滚动的两个点之间具有颜色过渡,并且在滚动时也具有点的大小过渡
我需要为大量项目仅显示有限的点。
在视图系统中,我们使用了这个库https://github.com/Tinkoff/ScrollingPagerIndicator,它非常平滑,并且具有非常漂亮的颜色和大小过渡效果。
我尝试用滚动状态来实现它rememberLazyListState(),但它比我想象的要复杂。
您知道 Jetpack Compose 有什么解决方案吗?
是否可以将当前库与 AndroidView 一起使用?因为它需要 XML 视图、回收器视图和 viewpager,我想知道如何将它与 AndroidView 一起使用?
android scroll kotlin viewpagerindicator android-jetpack-compose