-
2 votesanswersviews
在Repository和ViewModel之间共享相同的MutableLiveData
我正在围绕Architecture Components / MVVM进行整理 . 让's say I have a repository, a ViewModel and a Fragment. I' m使用 Resource 类作为包装器来公开网络状态,如Guide to architecture components中所建议的那样 . 我的存储库目前看起来像这样(简化为简洁): class ... -
26 votesanswersviews
使用新的体系结构组件ViewModel在片段之间共享数据
在Last Google IO上,Google发布了一些新的Arch组件预览,其中一个是ViewModel . 在docs中,google显示了此组件的一种可能用途: 活动中的两个或多个片段需要相互通信是很常见的 . 这绝不是微不足道的,因为两个片段都需要定义一些接口描述,并且所有者活动必须将两者绑定在一起 . 而且,两个片段必须处理尚未创建或不可见的其他片段的情况 . 可以使用ViewMode... -
1 votesanswersviews
带有Android架构组件的MVVM
我正在探索新的Android架构组件,并希望将其实现到Android应用程序中 . 我是MVVM的坚定者,因为我在iOS开发中使用范例 . 阅读了Google提供的Android架构组件指南:https://developer.android.com/topic/libraries/architecture/guide.html 我只有几个问题...... 在上面提到的指南中,Google使用访问... -
3 votesanswersviews
Android架构组件ViewModel - 与Service / IntentService的通信
我是'm exploring Google' s Android Architecture Components . 在我的项目中,我依赖于Services和IntentServices . 从IntentService或Service与app的ViewModel进行通信的正确方法是什么?使用LiveData可以实现吗? -
11 votesanswersviews
将ViewModel绑定到服务是否正确?
我已经开始在我的应用程序中使用Architecture Components,我仍然在学习如何使用它 . 在我的应用程序中,我有一个活动按顺序显示不同的碎片 . 在其中一些我需要与后台服务进行通信,以便从外部BLE传感器接收数据 . 由于我需要在多个片段中与服务进行交互,我想知道ViewModel是否是进行绑定的正确位置 . I've looked around但我没有找到答案 . 在ViewM... -
0 votesanswersviews
存储库仅在第二个调用数据时发送回ViewModel
根据本教程:https://developer.android.com/jetpack/docs/guide?fbclid=IwAR2vtdeMmmnq6h-zcwTuLLLZcRdhr_pSPr7vT7ZebEL3K3EyR-CobCU07Q0#overview我尝试在不使用脱机数据库或缓存的情况下完成Repository Pattern . Fragment观察者在ViewModel中生活,... -
2 votesanswersviews
Android架构组件ViewModel可以从多个LiveData返回模型组成一个对象吗?
我无法创建一个Android Architecuture组件ViewModel,它将多个LiveData模型组合成一个LiveData类,供我的Fragment观察 . 我想隐藏片段中的模型细节,并通过各个模型响应外部数据更改 . 问题是我需要ViewModel来观察模型更改,但ViewModel不是LifecycleOwner,因此无法观察 . 由于我不想将LiveData对象传递给UI,因此我... -
1 votesanswersviews
Android架构组件:ViewModel如何观察存储库中的LiveData
我正在研究Android Architecture Components,我有点困惑 . 在sample中,他们使用存储库并声明ViewModel观察到存储库的数据源内的更改 . 我没有't understand how the changes within the datasource are pushed to the ViewModels, as i cannot see any code ... -
3 votesanswersviews
屏幕旋转后,Android Arch Components ViewModel和LiveData触发器
我在使用 ViewModel 和 LiveData 时遇到问题我使用ViewModel和LiveData arch组件是新的,并且在使用 fragments 并且旋转屏幕时会出现问题,观察者会被触发...我试图移动 viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java) 在所有片段生命周期方法中但没有成功 . 我... -
0 votesanswersviews
Android架构组件视图模型
我试着用android架构组件更新我的学校项目 . 在这些日子里,我正在研究架构组件中的ViewModel组件 . 我读了很多文章 . 我知道使用viewmodel用于 provide data to the UI and survive configuration changes. 但我的问题是这会导致内存泄漏吗?作为示例如果在Activity的生命周期完成之前未清除引用,则将是内存泄漏 . 大... -
3 votesanswersviews
Android JetPack的共享ViewModel生命周期
文档https://developer.android.com/topic/libraries/architecture/viewmodel#sharing描述了我们如何跨不同的片段共享相同的ViewModel . 我的 single Activity app中有一些复杂的页面,带有容器和标签片段 . 每个这样的页面都有自己的ViewModel,它应该与所有包含的片段共享 . 这里的关键技巧是使... -
2 votesanswersviews
共享ViewModel以帮助片段和父活动之间的通信
虽然JetPack的导航组件看起来非常有前景,但我找到了一个无法找到实现我想要的方法的地方 . 我们来看一个示例应用程序屏幕: 该应用程序有一个主要活动,一个顶部工具栏,一个底部工具栏与fab连接 . 我面临着两个挑战,我想让它们成为正确的方法 . 1. I need to implement fragment transactions in order to allow replacing t... -
6 votesanswersviews
对于在库模块中定义的POJO的@NonNull带注释的构造函数参数,Android Room @Embedded批注编译失败
我有一个POJO,我嵌入房间实体;请注意 POJO is defined in a library module ; @Entity public class Person { @PrimaryKey @NonNull private String uuid; @Embedded @NonNull private Address address; ... -
99 votesanswersviews
房间坚持图书馆 . 删除所有
如何使用Room Persistence Library删除特定表上的所有条目?我需要删除表,但我无法找到任何信息如何执行此操作 . 仅在数据库迁移或加载所有条目并删除它们时:) -
0 votesanswersviews
Android从ViewModel调用View Controller方法
我开始玩Android JetPack(ViewModel,Architecture Components,LIfeCycle等) . 直到现在,我正在使用Model View Presenter架构,实际上我发现它很容易测试和维护架构 . 另一方面,我可以通过使用ViewModels看到的最大优势是它们与活动和碎片生命周期的本地耦合,这一直是Android开发人员最大的痛苦之一,因此我认为这是一... -
0 votesanswersviews
如何使用导航架构组件创建BottomSheetDialogFragment?
我使用 BottomSheetDialogFragment 来显示一些自定义设置 . Requirement: 当我单击BottomSheetDialogFragment中的任何选项卡时,我替换片段并将其添加到backstack,以便当用户单击onBackPress或Up操作时,它应该返回BottomSheetDialogFragment的最后一个设置的片段 . I want to use Nav... -
13 votesanswersviews
导航架构组件 - 对话框片段
是否可以使用带有DialogFragment的新导航架构组件?我是否必须创建自定义导航器? 我很乐意将它们与导航图中的新功能结合使用 . -
6 votesanswersviews
返回到'Navigation Architecture Component'中的相同选项卡时,嵌套片段的状态将丢失
我正在探索上个月在Google I / O 2018中引入的“导航架构组件”概念 . 假设我有一个带有底部导航视图和'片段'的活动来托管所有片段: - <android.support.constraint.ConstraintLayout xmlns:tools="http://schemas.android.com/tools" android:id=... -
2 votesanswersviews
Android Jetpack Navigation如何处理Toolbar和BottomNavBar内容
我对导航组件如何适应应用程序行为感到困惑 . 在教程中看起来很漂亮和闪亮,你不会做太复杂的事情,但在实际的应用程序中实现时,事情似乎有所不同 . Before Navigation 在实现导航之前,我不得不手动运行片段事务 . 为了做到这一点,我的片段将实现一个接口 onFragmentAction ,它将 bundle 传递给主 Activity ,并在基于动作的活动中,将当前片段替换为另一个片... -
0 votesanswersviews
android - 如何使用底部应用栏实现导航
我有一个包含以下4种布局的项目: 我实际上有一个活动持有底部应用栏和NavHostFragment注入片段 . 主片段是主视图 . 有一个管理和设置片段,两者都是顶级视图,如主视图,但不相互依赖 . 可以通过单击导航抽屉中的项目来切换这3个片段 . 为简化起见,我正在尝试新的导航架构组件 . 现在我有一些设计问题: 我应该将底部应用栏移动到片段中,因为它们不相互依赖,而FAB按钮有另一个动作,... -
4 votesanswersviews
如何在导航架构组件中实现条件导航
在新的Navigation架构组件中,如何实现条件导航? 目前我有一个使用LoginFragment和HomeFragment的活动 . 基于某个login_flag,我曾经调用MainActivity中的任一片段 . 由于LoginFragment只被调用一次,我已将startDestination设置为HomeFragment,导航加载此HomeFragment . 有没有办法在导航加载Hom... -
7 votesanswersviews
如何在导航到Android中的另一个片段后清除导航堆栈
我在android中使用了新的 Navigation Architecture Component ,在移动到新的片段之后我被困在清理导航堆栈中 . 示例:我在loginFragment中,当我导航到主片段时,我希望从堆栈中清除此片段,以便用户在按下后退按钮时不会返回到loginFragment . 我使用简单的NavHostFragment.findNavController(Fragment)... -
2 votesanswersviews
导航架构组件 - 导航抽屉
我正在使用带有导航抽屉的导航组件 . 我为菜单中的每个导航项添加了片段 . 添加NavHostFragment将交换此Fragment 然后将碎片添加为目的地 我想要主要细节导航,即开始目的地 - >片段2后退按钮 - >开始目的地开始目的地 - >片段2 - >片段3 - >片段4后退按钮 - >开始目的地 我的问题是我是否应该添加任何... -
1 votesanswersviews
如何使用导航组件使用片段和子片段?
我正在使用带有碎片的导航组件作为我的个人目的地制作应用程序 . 我想知道如何实现这样的导航流程: 在目的地2中,有一个菜单按钮,可以打开一个小菜单(不覆盖整个屏幕) . 在菜单(菜单1)内,点击其他按钮,第二个菜单(菜单2)替换第一个菜单 . 按后退按钮应按如下方式移动: 目的地2(b) - >目的地2(a) - >目的地2 - >目的地1 如何使用导航组件实现此功能?为了清... -
2 votesanswersviews
使用android导航组件获取Backstack状态
我想实现反向行为,这样当你向后按下Backstack为空时它会提示确认弹出窗口,否则它会弹出堆栈中的下一个片段 . 我正在尝试获得后台筹码,但我总是从两个片段管理器得到0 getSupportFragmentManager().getBackStackEntryCount(); getFragmentManager().getBackStackEntryCount(); 我想它应该工作,因为我... -
1 votesanswersviews
导航架构组件片段替换问题
我有三个片段,如fragmetnA,fragmentB和fragmentC . 现在使用导航架构组件我有切换 FragmentA - > FrgmentB - >片段C现在来自fragmentC我打开片段A所以现在导航流看起来像这样 FrgmentB -> Fragment C -> FragmentA 代替 FragmentA -> FrgmentB ->... -
3 votesanswersviews
使用Android的新架构组件,saveInstanceState是否重要?
阅读Android的new Architecture Components,建议使用各种ViewModel实例将数据提供给Activities和Fragments . driving data from a single persistent model也有这个概念: 第二个重要原则是您应该从模型驱动UI,最好是持久模型 . 持久性是理想的两个原因:如果操作系统破坏您的应用程序以释放资源,您的用... -
1 votesanswersviews
在ViewModel和Fragment / Activity交互和通信之间应用MVVM
我正在投入大量时间来正确理解架构组件以及所有内容如何适应MVVM模式 . 到目前为止,这是我看到的东西(没有做Dagger注射,因为我还没有那么远): a) UserEntity 是一个带有 @Entity 注释的类来处理 Room 的表创建 @Entity(tableName="users") public class Users{ private long id; ... -
49 votesanswersviews
Android Room Persistence Library:Upsert
Android的Room持久性库慷慨地包含适用于对象或集合的@Insert和@Update注释 . 然而,我有一个用例(包含模型的推送通知)需要UPSERT,因为数据可能存在或可能不存在于数据库中 . Sqlite本身没有upsert,并且在SO question中描述了变通方法 . 鉴于那里的解决方案,如何将它们应用于房间? 更具体地说,如何在Room中实现不会破坏任何外键约束的插入或更新?使用... -
0 votesanswersviews
如何使用Android上的Room访问使用SQL连接的对象
我想问你一些建议,如何在两个表上使用 LEFT JOIN 后访问对象 . 我've got tables defined in external file File.db and I'm将它加载到Android上的Room数据库 . 我已经定义了两个表: CREATE TABLE Example ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMEN...