【发布时间】:2021-09-22 22:38:15
【问题描述】:
我已经按照此处其他用户的建议实现了 import androidx.compose.runtime.*,但我仍然无法使用 observeAsState 在可组合元素内显示任何值,例如 Text(text = weather.main.temp.toString())。
可组合:
@Composable
fun WeatherAppHomeScreen(weatherViewModel: WeatherViewModel) {
val weather: Weather by weatherViewModel.myResponse.observeAsState()
Text(text = weather.main.temp.toString())
}
数据类:
data class Weather(
@SerializedName("base")
val base: String,
@SerializedName("clouds")
val clouds: Clouds,
@SerializedName("cod")
val cod: Int,
@SerializedName("coord")
val coord: Coord,
@SerializedName("dt")
val dt: Int,
@SerializedName("id")
val id: Int,
@SerializedName("main")
val main: Main,
@SerializedName("name")
val name: String,
@SerializedName("rain")
val rain: Rain,
@SerializedName("sys")
val sys: Sys,
@SerializedName("timezone")
val timezone: Int,
@SerializedName("visibility")
val visibility: Int,
@SerializedName("weather")
val weather: List<WeatherX>,
@SerializedName("wind")
val wind: Wind
)
ViewModel 类:
class WeatherViewModel : ViewModel() {
val myResponse: MutableLiveData<Weather> = MutableLiveData()
fun getWeather() {
viewModelScope.launch {
myResponse.value = retrofit.getWeather()
}
}
}
【问题讨论】:
标签: android kotlin android-jetpack-compose