05. Compose State

51 阅读1分钟

01. Compose 可组合组件之Row And Column

02. Compose 可组合组件之 属性 modifier

03. Compose 可组合组件之Card 图片

04. Compose 字体

05. Compose State

class StateActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Column(modifier = Modifier.fillMaxSize()) {
                //记住颜色状态不会重复赋值
                val color = remember {
                    mutableStateOf(
                        Color.Gray
                    )
                }
                ClickBox(
                    modifier = Modifier
                        .weight(1f)
                        .fillMaxSize()
                ) {
                    //产生的Color颜色回调到这里 给color赋值
                    color.value = it
                }
                Box(
                    modifier = Modifier
                        .background(color = color.value)
                        .weight(1f)
                        .fillMaxSize()
                ) {

                }
            }
        }
    }

    @Composable
    fun ClickBox(modifier: Modifier = Modifier, colorUpdate: (Color) -> Unit) {
        Box(
            modifier = modifier
                .background(color = Color.Blue)
                .clickable {
                    //点击后产生随机颜色
                    colorUpdate(
                        Color(
                            Random.nextFloat(),
                            Random.nextFloat(),
                            Random.nextFloat(),
                            1f
                        )
                    )
                }
        ) {

        }
    }
}

在这里插入图片描述