这是我的问题;
- 当我在屏幕中添加可组合的 MyText 时,我会看到所有日志(value1、value2、value3),这意味着它正在重新组合我的代码的每个部分。
- 但是,当我评论 MyText 行时,我在 Logcat 上只看到 value3
我怎样才能解决这个问题 ?我知道这不是一个大问题,但想象一下我们这里有一个可滚动的 Column 并且我们正在尝试将 ScrollState.value 传递给 My Text 组件。由于这种情况,我们的列表变得如此滞后。
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())
}
编辑 存在主要问题,可滚动列;
@Composable
fun Screen(){
val scrollState = rememberScrollState()
Box() {
Column(modifier = Modifier
.verticalScroll(scrollState)
.padding(top = 50.dp)) {
//Some Static Column Elements with images etc.
}
MyText(scrollStateValue = scrollState.value) //Doing some UI staff in this component
}
}
@Composable
fun MyText(scrollStateValue:Int){
Text(text = scrollStateValue.toString())
}