Compose 遇到的坑

Compose焦點移動問題

焦點設置必須按照以下順序,否則會有問題
Modifier 說明 必須順序
focusRequester() 注冊焦點請求器 放在 .focusable() 之前
onFocusChanged {} 監(jiān)聽焦點狀態(tài)變化 放在 .focusable() 之前
focusable() 添加焦點節(jié)點 必須在最后!

示例如下:

@Composable
fun Test(modifier: Modifier = Modifier) {
    val focusRequester = remember { FocusRequester() }
    val focusRequester2 = remember { FocusRequester() }
    var color by remember { mutableStateOf(Color.White) }
    var color2 by remember { mutableStateOf(Color.White) }
    Column {
        LaunchedEffect(Unit) {
            focusRequester.requestFocus()
        }
        Text(
            "AAA",
            modifier = Modifier
                .size(200.dp)
                .background( color)
                .focusRequester(focusRequester)
                .onFocusChanged {
                    Log.d(TAG, "Test: AAA ${it.isFocused}")
                    color = if (it.isFocused) Color.Red else Color.White
                }
                .focusable(true)
                .clickable {
                    focusRequester.requestFocus()
                }
               )

        Spacer(modifier = Modifier.height(20.dp))
        Text(
            "BBB",
            modifier = Modifier
                .size(200.dp)
                .background(color = color2)
                .focusRequester(focusRequester2)
                .onFocusChanged {
                    color2 = if (it.isFocused) Color.Red else Color.White
                }
                .focusable(true)
                .clickable {
                    focusRequester2.requestFocus()
                })
    }
}

Compose 打印日志出現(xiàn)死循環(huán)問題

原本期望記錄控制臺打印的日志,在compose 方法體中直接調(diào)用類似記錄日志更新頁面方法,如果直接按照注釋部分的代碼進行拼接,會出現(xiàn)重組死循環(huán)問題 compose 不要直接調(diào)用更新狀態(tài)的方法,使用LaunchedEffect等副作用

logContent.value = logContent.value + "\n" + "${Date().toString().substring(10)} $content"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容