小编Sep*_*hah的帖子

在 JetpackCompose 中,我们看到所有内置可组合项都具有扁平化输入,这是有目的的吗?或者用数据类包装输入具有相同的性能?

在 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)

在性能(重组)中将输入作为数据类或扁平输入发送会更好吗?或者有相同的结果?

换句话说,当我们将一个数据类发送给可组合函数时,我们只更改其中的一个成员,是否会导致整个函数重新组合?或者重组方面,它与使用扁平输入时具有相同的性能吗?

预先感谢您的帮助。

android kotlin data-class recompose android-jetpack-compose

6
推荐指数
1
解决办法
728
查看次数

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 …
Run Code Online (Sandbox Code Playgroud)

android modifier kotlin android-jetpack-compose

5
推荐指数
1
解决办法
999
查看次数

5
推荐指数
1
解决办法
1588
查看次数

如何在 Jetpack Compose 中创建点指示器(带有颜色和尺寸转换)

我想要一个水平点指示器,它在滚动的两个点之间具有颜色过渡,并且在滚动时也具有点的大小过渡

我需要为大量项目仅显示有限的点。

在此输入图像描述

在视图系统中,我们使用了这个库https://github.com/Tinkoff/ScrollingPagerIndicator,它非常平滑,并且具有非常漂亮的颜色和大小过渡效果。

我尝试用滚动状态来实现它rememberLazyListState(),但它比我想象的要复杂。

您知道 Jetpack Compose 有什么解决方案吗?

是否可以将当前库与 AndroidView 一起使用?因为它需要 XML 视图、回收器视图和 viewpager,我想知道如何将它与 AndroidView 一起使用?

android scroll kotlin viewpagerindicator android-jetpack-compose

4
推荐指数
1
解决办法
7518
查看次数