dependencies

implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(libs.androidx.lifecycle.livedata.ktx)

一个继承自 ViewModel 的类

class MainViewModel : ViewModel() {
    private val _number = MutableStateFlow(100)
    val number: StateFlow<Int>
        get() = _number
}

使用它

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            val mainViewModel: MainViewModel by viewModels()
            val numberState by mainViewModel.number.collectAsState()
            ViewModelDemoTheme {
                Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
                    Greeting(
                        num = numberState, modifier = Modifier.padding(innerPadding)
                    )
                }
            }
        }
    }
}

@Composable
fun Greeting(num: Int, modifier: Modifier = Modifier) {
    Text(
        text = num.toString(),
        modifier = modifier
    )
}