implementation 'androidx.lifecycle:lifecycle-runtime:2.4.0' implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07' implementation 'androidx.compose.ui:ui:1.0.2' implementation 'androidx.compose.runtime:runtime:1.0.2' implementation 'androidx.compose.ui:ui-tooling-preview:1.0.2' import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch class MyViewModel : ViewModel() { var count = 0 init { viewModelScope.launch { count++ } } } kotlin import androidx.compose.foundation.layout.Column import androidx.compose.material.Button import androidx.compose.material.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.lifecycle.viewmodel.compose.viewModel @Composable fun MyScreen(myViewModel: MyViewModel = viewModel()) { var count by remember { mutableStateOf(0) } MaterialTheme { Column(modifier = Modifier.fillMaxSize()) { Button( onClick = { count++ }, modifier = Modifier.align(alignment = Alignment.CenterHorizontally) ) { Text(text = "Click Me") } Text( text = "Count: ${myViewModel.count}", modifier = Modifier.align(alignment = Alignment.CenterHorizontally) ) } } } @Composable @Preview fun PreviewMyScreen() { MyScreen() }


上一篇:
下一篇:
切换中文