android - Compose Spacer 与 View 填充性能

标签 android android-jetpack-compose

我更喜欢使用 Spacer 在 View 之间添加一些填充,有时您可以将此空间作为填充添加到 View 中。所以我的问题是使用 Spacers 与使用良好的旧填充值相比是否存在任何性能缺陷?

最佳答案

性能会有所不同。在下面的测试中,50 个项目使用填充渲染,50 个项目使用间隔渲染。垫片的渲染速度大约是原来的两倍。但是,如果您颠倒顺序并首先渲染 50 个带有间隔的项目,然后渲染 50 个带有填充的项目,则填充速度更快,大约是使用间隔所需的持续时间的 0.2 倍。很明显,项目的数量和它们呈现的顺序将显着影响性能。我怀疑如果你更喜欢猫而不是狗,谷歌的某个人会给你更好的表现:-)

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        startActivity(intent)

        setContent {
            val modifierPadding = Modifier.padding(bottom = 10.dp)
            val modifierSpacer = Modifier
                .requiredHeight(1.dp)
                .fillMaxWidth()

            Column(modifier = Modifier
                .fillMaxSize()
                .verticalScroll(rememberScrollState())) {
                val startTimePadding = System.nanoTime()

                repeat(50) {
                    Text("I like dogs", modifier = modifierPadding)
                }

                val durationPadding = System.nanoTime() - startTimePadding
                val startTimeSpacer = System.nanoTime()

                repeat(50) {
                    Text("I like cats")
                    Spacer(modifier = modifierSpacer)
                }

                val durationSpacer = System.nanoTime() - startTimeSpacer

                Text("padding to spacer ratio: " + (durationPadding.toFloat() / durationSpacer.toFloat()))
            }
        }
    }
}

关于android - Compose Spacer 与 View 填充性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70199822/

相关文章:

android - 如何在 Activity 之间处理 Facebook Android SDK v4.1 访问 token

android - Jetpack Compose Recomposition 每次状态改变

kotlin - 如何设置条件属性?

android - 为什么我在 Jetpack Compose 中收到警告信息 "Modifier parameter should be named modifier"?

android - 检测隐藏 fragment 中的 View 可见性

java - 使用 Gradle 的开发和生产环境的不同参数

android - 如何访问可组合函数中的共享首选项?

android-jetpack-compose - Jetpack 撰写 : How to listen column scrolled to end?

android - 在 list 文件中使用 contentObserver

android - 如何在 declare-styleable 中定义一个整数数组?