Пожалуйста, предложите способ исправить этот рабочий способ использования отдыха с помощью компонуемых объектов mvvm и lAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Пожалуйста, предложите способ исправить этот рабочий способ использования отдыха с помощью компонуемых объектов mvvm и l

Сообщение Anonymous »

Прежде всего, это работает на 100% нормально, но я чувствую, что есть способ получше, и, возможно, я не до конца понимаю связь между изменяющимися данными и наблюдаемыми данными, хотя работает нормально..
ViewModel выполняет всю работу , но часть наблюдения верна? Не обращайте внимания на модернизацию.

Код: Выделить всё

@Composable
fun layoutX(){
val news = remember { mutableStateOf( ArrayList()) } //ignore 'by'
//... here i do the ui layout with rows cols and boxes and some part i got this
getLazyColumnNews(mainActivity, news)//another composable function
...
}

@Composable
fun getLazyColumnNews(....) {
val appViewModel = viewModel(AppViewModel::class.java) //just to get the vm ref
appViewModel.startRetrofitCall() //getting the json as pojos

appViewModel.news.observe(context,{ // im observing news in vm and update news.value
news.value = appViewModel.getNews().value as ArrayList
})

LazyColumn(
contentPadding = PaddingValues(...)
) {

//So news.value starts with 0 elemenst but updated when we observer change
items(news.value) {
getCardNoticia(info = it) // just mapping
Spacer(...)
}
}

//And the viewmodel that makes the call:
fun startCall(){
...//retrofit stuff
viewModelScope.launch(Dispatchers.IO) {
val response = apiCall.getRepoNews(UtilsStrings.urlResolve).awaitResponse()
if (response.isSuccessful){
// ... i mapped values to a new list so i can do this.
news.value = newListX
}

//last in view model this variable
var news = MutableLiveData()

fun getNews():LiveData{
return alNews
}
Это суммирует способ использования отдыха с использованием модификации, сопрограмм и композиции... но это похоже на хак... что в этом плохого, пожалуйста??

Подробнее здесь: https://stackoverflow.com/questions/790 ... mvvm-compo
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»