小编Har*_*nch的帖子

Jetpack Compose 重构每个状态变化

这是我的问题;

  • 当我在屏幕中添加 MyText 可组合项时,我会看到所有日志(value1、value2、value3),这意味着它正在重新组合代码的每个部分。
  • 但是,当我评论 MyText 行时,我在 Logcat 上只看到 value3

我怎样才能解决这个问题 ?我知道这不是一个大问题,但想象一下我们这里有一个可滚动的列,并且我们正在尝试将 ScrollState.value 传递给我的文本组件。由于这种情况,我们的列表变得如此滞后。

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

@Composable
fun Screen(){
    var counter by remember {
        mutableStateOf(0)
    }
    Log.i("RECOMPOSE","VALUE1")
    Column() {
        Text(text = "Just a text")
        Log.i("RECOMPOSE","VALUE2")
        Button(onClick = { counter = counter.plus(1) }) {
            Text(text = counter.toString())
            Log.i("RECOMPOSE","VALUE3")
        }
        MyText(counter)
    }
}
@Composable
fun MyText(counter:Int){
    Text(text = counter.toString())
}
Run Code Online (Sandbox Code Playgroud)

编辑 滚动列存在主要问题;

@Composable
fun Screen(){
    val scrollState …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-jetpack-compose android-jetpack-compose-list compose-recomposition

2
推荐指数
1
解决办法
4086
查看次数