[英]Manually recompose all AndroidView in JetPack Compose
在我的項目中,我使用 JetPack Compose 和 AndroidView 來使用 XML 視圖。
@Composable
fun MyComposable(
message: String
) {
AndroidView(
factory = { context ->
TextView(context).apply {
text = message
}
})
}
我的問題是,當我的message
state 更改時, AndroidView
中的 XML 視圖不會重新組合。 AndroidView
中有一個選項可以阻止 state 更改?
ps:我已經為示例簡化了MyComposable
您可以使用update
塊。
從文檔:
由於重組,
update
塊可以多次運行(也可以在 UI 線程上),它是根據 state 設置View
屬性的正確位置。 當 state 更改時,將重新執行該塊以設置新屬性。 請注意,該塊也將在factory
塊完成后立即運行一次
AndroidView(
factory = { context ->
TextView(context).apply {
text = "Initial Value"
}
},
update = {
it.text = message
}
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.