草庐IT

lifecycle-viewmodel-ktx

全部标签

RecyclerView Adapter 中的 Android ViewModel 用于惰性数据库下载

我有一个问题与MVVM的正确设计和架构有关,而不是与编码本身有关。在我的项目中,我遇到了ViewModel正在提供数据的情况,这些数据后来在RecyclerView.Adapter中用于创建正确的View。但是我想知道这是否也是正确的(从正确的“做事方式”POV)如果一些数据以id的形式提供以便从Room或外部服务器进一步获取?例如,在onBindViewHolder期间使用一些带有observe()的LiveData在成功加载时更新某些字段。 最佳答案 在View中获取数据是不行的。它违背了MVVM的初衷,尤其是AndroidJe

android - 带有 viewmodel 和实时数据的 ViewPager,所有 6 个选项卡数据都被最后一个选项卡数据替换

我正在开发一个带有6个tabs的ViewPager,其中它只有一个fragmentTimesListFragment根据传递给TimesListFragment的参数,它调用api例如;科学、技术、旅游等我已经为我的应用关注了Google的GithubBrowserSample我有TimesListFragment->TimesViewModel->TimesRepository有6个选项卡,当我点击api时,所有选项卡显示相同的结果,如果是最后一个argumentStoriesPagerAdapter.ktclassStoriesPagerAdapter(fragmentManage

android - 无法获取提供者 androidx.lifecycle.ProcessLifecycleOwnerInitializr

运行具有依赖项'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'和'androidx.lifecycle:lifecycle-viewmodel:2.1.0-的应用程序时出错alpha03'在装有Android4.4的设备上。在Android6设备上运行良好应用因错误而崩溃java.lang.RuntimeException:Unabletogetproviderandroidx.lifecycle.ProcessLifecycleOwnerInitializer:java.lang.ClassNotFoundExceptio

android - 什么是 KTX(Kotlin 扩展库),为什么它在 Android 开发中越来越受欢迎

如何开始使用KTXforandroid? 最佳答案 AndroidKTX-一组扩展,旨在使为Android编写Kotlin代码更加简洁、惯用和愉快。AndroidKTX在Android框架和支持库之上提供了一个很好的API层,让您编写Kotlin代码更加自然。例如,在Kotlin中将字符串解析为URI(传统方式)我们有valuri=Uri.parse(myUriString)通过使用KTX,我们可以将上面的代码简化为valuri=myUriString.toUri()你可以引用这篇博客了解更多详情https://android-de

Android 架构组件 ViewModel 上下文问题

我正在尝试在Android中使用新的架构组件,到目前为止它运行良好。但是,我遇到了架构问题。我有一个MainActivity,它承载了一堆fragment,A、B和C。到目前为止,每次我需要我的ViewModel(VM)时,我都会在MainActivity的上下文中获取它(如下所示:MyViewModelvm=ViewModelProviders.of(getActivity()).get(MyViewModel.类);)。现在考虑一下:fragmentC让用户选择一些值,并将其写入VM。fragmentA使用fragmentC让用户选择值,然后A直接从VM并将其显示在其UI中。fra

android - 从 ViewModel 观察存储库 LiveData 并通知 UI

Google表示不可能从ViewModel观察LiveData:[...]HoweverViewModelobjectsmustneverobservechangestolifecycle-awareobservables,suchasLiveDataobjects.[...]我会在ViewModel中处理repo.login()结果并通知UI认为这两个SingleLiveEvents,这可能吗?classRepository{//....//funlogin(user:String,password:String):LiveData{/*...*/}}classLoginViewMo

android - MvvmCross Navigate to ViewModel on Android 通知点击

我正在使用Support.V7.NotificationCompat显示通知。单击此通知时,我想导航到ViewModel。当我尝试使用MvxViewModelRequest显示ViewModel时,我传递给ViewModel的导航参数不起作用,但当我像这样使用ShowViewModel时它有效:ShowViewModel(new{id=existingModification.Id});这是ViewModelInit方法。当我使用ShowViewModel导航时,Guid具有正确的值。当我使用MvxViewModelRequest导航时,Guid始终具有值Guid.Empty(全为0)

Android 的 ViewModel 和 MVVM

有一种称为MVVM(模型-View-View模型)的设计模式,其中使用View模型作为View的抽象。ViewModel应该向View公开数据流并与Model的数据交互。但是有一个ViewModelAndroid框架中的类。问题:Android的ViewModel与MVVM模式中的View模型有关吗? 最佳答案 它们是不同的。Android所指的ViewModel就是。TheViewModelclassisdesignedtostoreandmanageUI-relateddatasothatthedatasurvivesconfi

Android:在 ViewModel 中获取 DAO

在ViewModel中获取AndroidRoomDAO的最佳方式是什么?基于paginglibrary例如我写了这个ViewModel:classMyViewModel(myDao:MyDao):ViewModel(){valdata=myDao.get().create(/*initialloadposition*/0,PagedList.Config.Builder().setPageSize(50).setPrefetchDistance(50).build())}然后我尝试获取一个实例valviewModel=ViewModelProviders.of(this).get(My

跨 Activity 的 Android 组件 ViewModel

在AndroidComponents中,我可以将应用程序类作为ViewModel的所有者,以便我在多个Activity中使用它吗?还是没有走动?ViewModelProviders.of(applicationclassnotactivity).get(MyViewModel.class); 最佳答案 Application不是LifecycleOwner,因此您不能将它用作ViewModel的作用域。 关于跨Activity的Android组件ViewModel,我们在StackOve