我有一个 MVI 架构,其中包含主屏幕的活动
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyTheme {
val viewModel: MainScreenViewModel = viewModel(factory = MainScreenViewModel.Factory)
val state by viewModel.viewState.collectAsState()
MainScreen(state, viewModel::handleEvent)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
主屏幕看起来有点像这样:
@Composable
fun MainScreen(state: MainScreenState, onEvent: (Event) -> Unit) {
TaskList(
tasks = state.items,
onEvent = onEvent,
)
}
@Composable
fun TaskList(tasks: List<TaskState>, onEvent: (Event) -> Unit) {
LazyColumn {
items(items = tasks, key = { it.id }) {
Task(state = it, onEvent = onEvent) …
Run Code Online (Sandbox Code Playgroud) android kotlin android-jetpack-compose compose-recomposition