override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
HomePager()
}
}
}
class My1ViewModel() : ViewModel() {
val mPageStateLD : LiveData
val mPageStateFlow :Flow
}
@Compose
fun Page(){
val mVM: My1ViewModel = viewModel()
val pageState = mVM.mPageStateFlow.collectAsState() //将Flow转化为State值
// val pageState = mVM.mPageStateLD.observeAsState() //将Livedata转化为State值
………………
}
val num: State<Int> = mutableStateOf(0) //待转化的State对象
val flow: Flow<Int> = snapshotFlow { num.value } //转化为Flow
Column {
AndroidView(
factory = { context->
// 原生 ImageView
ImageView(context).apply {
setImageResource(R.mipmap.ic_launcher)
}
}
)
}
3.3.2 Compose Navigation默认路由不支持参数识别
NavHost(navController = navController, startDestination = "StartDestination"{mainGraph(navController)}
LaunchedEffect(key1 = Unit) {
if (navController.currentBackStackEntry?.destination?.route == "StartDestination" && route != null) {
navController.navigate(route) {
popUpTo("StartDestination") {
inclusive = true
}
}
}
}
LazyColumn(...) {
items(list) { model ->
SchoolItem(model)
}
}
...
recycleView.adapter = mAdapter
...
mAdapter.notifyDataSetChanged()
4.2.3 包对比——包体容量、总方法数