why AndroidView read a non-state value , but get r...
# compose
i
why AndroidView read a non-state value , but get recompose everytime, it's expected? code in thread
Copy code
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            MainContent()
        }
    }
}

enum class Mode {
    Map,
    Navigation
}

@Composable
fun MainContent() {
    var mode by remember { mutableStateOf(Mode.Map) }
    val list =  remember { mutableListOf<Int>() }
    val stateList =  remember { mutableStateListOf<Int>() }
    Log.d(BuildConfig.APPLICATION_ID, "MainContent: Recompose")
    Column(modifier = Modifier
        .fillMaxSize()
        .clickable { if (mode == Mode.Map) mode = Mode.Navigation else mode = Mode.Map }) {
        MyHeader(mode = mode)
        AndroidView(factory = { context -> LinearLayout(context) }){
            Log.d(BuildConfig.APPLICATION_ID, "Map: Recompose ${list}") /* recompose when click */
//            Log.d(BuildConfig.APPLICATION_ID, "Map: Recompose ${stateList}")    /* recompose not happened */
        }
    }
}

@Composable
fun MyHeader(mode: Mode) {
    Log.d(BuildConfig.APPLICATION_ID, "Header: Recompose")
    if (mode == Mode.Map) {
        Box(
            modifier = Modifier
                .size(100.dp)
                .background(Color.Red)
        )
    } else {
        Box(
            modifier = Modifier
                .size(100.dp)
                .background(Color.Yellow)
        )
    }
}