21得票5回答
忽略navigate()调用:FragmentManager已经保存了它的状态。

我正在MainActivity中使用导航,然后启动SecondActivity(用于结果)。在完成SecondActivity后,我希望继续在MainActivity中进行导航,但FragmentManager已经保存了它的状态。当我执行Navigation.findNavController...

8得票4回答
Android ViewModel在fragment更改时无法存活。

我一直在尝试使用ViewModel和LiveData在Fragment之间共享信息。 但是,当我从一个片段切换到另一个片段时,我的ViewModel貌似被重新初始化了,导致我失去了所有先前存储的数据。 我在我的片段中以相同的方式获取我的ViewModel: @Override publi...

27得票2回答
在Viewmodel中访问BroadCastReceiver

我在选择从广播接收器传递数据到ViewModel的正确方式以及从那里传递数据到我的Repository并更新LiveData方面遇到了困难。我使用FCM推送通知,并且有一个使用ActivityLifecycle的本地广播接收器。 我发现从BroadcastReceiver访问ViewMode...

8得票2回答
WorkManager: 为测试目的立即调用doWork()

如果我有一个周期性的 PeriodicWorkRequest,我可以设置时间间隔——最小为 15 分钟。但是如何在不等待 15 分钟的情况下测试我的 doWork() 方法是否有效呢? 也许可以使用 OneTimeWorkRequest 进行测试? 提前感谢。

7得票4回答
如何在使用PagingDataAdapter时恢复RecyclerView的滚动位置?

我有一个应用程序,从API获取了一个包含158个项目的列表,并将其存储在Room中,然后显示给用户。RoomDB是真相的来源。 这是我的ViewModel上获取数据库结果的代码: private val pagingConfig = PagingConfig(pageSize = ...

48得票1回答
如何使用导航组件创建 BottomSheetDialogFragment?

我正在使用 BottomSheetDialogFragment 显示一些自定义设置。 需求: 当我点击 BottomSheetDialogFragment 中的任何选项卡时,我将替换该片段并将其添加到回退堆栈中,以便在用户单击“返回”或“上一步”操作时,它应返回到 BottomSheetD...

11得票3回答
如何在使用Android Navigation组件时移除默认的动画过渡?

我正在使用Navigation组件,并在主Activity中有一个底部导航视图。当我点击底部导航栏中的选项卡时,似乎会出现淡入动画效果,我不认为我手动设置了该动画,看起来这个动画是默认存在的。 我想要移除这个动画效果。下面是我在MainActivity中使用的代码。 class MainA...

17得票2回答
如何在继承LifecycleActivity的视图中设置支持ActionBar

我有一个扩展了AppCompactActivity的Activity,在onCreate方法中,我通常的方式使用setSupportActionBar 方法来设置 Toolbar:public class StepMasterActivity extends AppCompatActivity...

14得票1回答
LifecycleOwner: Fragment(自身)和Fragment#viewLifecycle之间的区别

使用 Android X 和以下的 Android Architecture Components: 导航(Navigation) 生命周期(Lifecycle) ViewModel 可以让 Android 开发更加简单,获得更好、更稳定的应用。当使用暴露给 Fragment 的 Li...

9得票2回答
Livedata与Rxjava的区别

我必须花费大量时间学习和实现Livedata(特别是MediatorLivedata)在业务逻辑中,因为它有助于从各种来源添加数据。我已经成功地使用它,因为我可以将FCM、网络或RoomDatabase作为不同的来源添加到我的MediatorLivedata中,并在ViewModel中观察它。...