Jetpack学习之ViewModel、Lifecycles、LiveData
全部标签前言前面的文章里面我们有介绍在Wpf中如何在View层将事件映射到ViewModel层的文章,传送门,既然WPF和Avalonia是两套不同的前端框架,那么WPF里面实现模式肯定在这边就用不了,本篇我们将分享一下如何在Avalonia前端框架下面将事件映射到ViewModel层。本章内容还是在上一节的基础上做扩展讲解。Avalonia中使用Prism实现区域导航功能安装行为扩展在Avalonia框架下面有它自己的行为扩展,我们需要借助这些扩展库里面的行为扩展来实现我们今天要讲解的功能。dotnetaddpackageAvalonia.Xaml.Behaviors--version11.0.5编
我需要为联系人请求权限,当应用程序启动时,我会询问,在ViewModel部分,我需要调用需要权限的方法。我需要检查用户是否授予权限然后调用,但是为了检查权限我需要访问Activity。而在我的ViewModel中,我没有对Activity的引用,也不想遇到这个问题,我该如何克服? 最佳答案 我刚遇到这个问题,我决定改用LiveData。核心概念:ViewModel有一个关于需要做出什么权限请求的LiveDataViewModel有一个方法(本质上是回调),如果权限被授予则返回SomeViewModel.kt:classSomeVie
AndroidArchitectureComponents提供LiveData和ViewModel类,它们对生命周期更友好,专为更精简的Activity/Fragment而设计。这些类处理跨配置更改的数据存储,但与Activity框架API相比,我对它们的使用感到困惑。onSaveInstanceState(Bundle)和onRestoreInstanceState(Bundle)对于保存Activity状态是否仍然必要或有用? 最佳答案 onSaveInstanceState和onRestoreInstanceState仍然有用
我收到以下错误我正在使用Android架构组件并尝试实例化View模型并从LiveData观察数据。但我被困在这里请帮我解决这个问题:Attempttoinvokevirtualmethod'voidandroid.arch.lifecycle.LiveData.observe(android.arch.lifecycle.LifecycleOwner,android.arch.lifecycle.Observer)'onanullobjectreference我的fragment是这样的:在调用getCompany()方法时我得到了NullPointExceptionErrorpub
在我的android应用程序中,我遵循具有mvvm模式的架构组件。我的应用程序进行网络调用以显示天气信息。api调用是从存储库进行的,该存储库将响应的实时数据返回到View模型,而我的主要Activity又观察到它。除了一种情况外,该应用程序工作正常,每当我断开互联网以测试失败案例时,它都会根据需要扩大错误View在错误View中我有一个重试按钮,它使方法调用再次观察View模型(这个方法也是第一次被oncreate()调用,有效)即使在打开Internet并单击监听observable的重试按钮后,数据仍然变为空。我不知道为什么,请大家帮忙存储库@Singletonpubliccla
我在AndroidViewModel类中使用LiveData我需要等待响应,但在某些情况下我需要从本地检查一些值共享首选项,不会阻塞任何线程。对于这些场景,我没有使用LiveData。这就是我在activityclass中所做的。homeViewModel.sendTokenToServer().observe(this,isFCMSendToServer->{Toast.makeText(this,"FCMTokenObservercalled",Toast.LENGTH_SHORT).show();});//WithoutLiveDataif(homeViewModel.isUpg
我最近看到一个奇怪的问题阻碍了我的项目。设置实时数据值的多次调用不会在View中调用观察者。似乎只有最后设置的值才真正调用View中的观察者。这是评论的代码fragment。主Activity.ktclassMainActivity:AppCompatActivity(){privatelateinitvarviewModel:MainViewModeloverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_mai
在AndroidJetpack导航组件中,例如here.我想知道是否可以在屏幕更改时使用默认系统动画(例如开始新Activity时的动画)。这将在enterAnim和exitAnim参数的上下文中。 最佳答案 当您使用编辑器时,您可以为进入和退出过渡定义动画:如果您没有在animxml文件夹中定义任何动画,则可以使用一些默认动画。如果这些都不适合您,您可以简单地创建一个模仿默认过渡的过渡并将其设置在那里。要获得默认动画,您需要依赖:implementation"android.arch.navigation:navigation-u
我正在尝试创建一个将使用MVVM架构的应用程序,但有一件事我不太明白。Android官方文档说在ViewModel中引用Activity上下文不是一个好主意(因为ViewModel可能比Activity长寿)所以当我想在Activity恢复时执行某些操作时,我开始怀疑用例。我知道ViewModel不应该自己执行业务逻辑,但即使我使用了一些服务类(假设GPSService必须启动和暂停,每次Activity在暂停时恢复),并且在这个服务中我对ActivityonResume使用react(使用生命周期观察者)我仍然会从ViewModel引用此Activity,因为我引用的服务包含对正在观
好吧,我有一个ViewModel带setter/gettergetTitle()返回MutableLiveData.一开始效果很好:EditText包含MutableLiveData的值当它第一次出现时。但是,如果使用MutableLiveData.setValue()更新此数据的值(例如通过另一个EditText,或来self的代码),那么文本框内的值不会改变。我该如何解决这个问题? 最佳答案 这在newversionofAndroidStudio中正常工作,它支持正确绑定(bind)到LiveData对象。