android - 重用具有多个片段的单个 ViewModel。MvvmCross Android
问题描述
我是 MvvmCross 的新手。我正在使用 Mvx v6.0.1 开发一个应用程序。我想使用片段(特别是 4 个片段或 4 个步骤)制作一种步进器,所有这些片段都嵌入到一个主要活动中。主活动布局有一个按钮,当我点击这些按钮片段时会切换到下一步。我为每个片段创建了一个视图模型,并为主要活动创建了一个视图模型。我遇到的问题是我需要从每个步骤中获取一些值并传递到下一步。我试图为每个视图(片段和活动)只共享一个视图模型。有什么办法可以做到这一点?
如果是,我如何区分每个步骤/片段以在它们之间导航?
我试图将相同的视图模型设置为 Activity 和片段:
//Activity code
public class AttendanceActivity : BaseActivity<AttendanceViewModel>
{
protected override int ActivityLayoutId => Resource.Layout.activity_attendance;
//some logic
}
//Fragment code
[MvxFragmentPresentation(ActivityHostViewModelType = typeof(AttendanceViewModel),
FragmentContentId = Resource.Id.attendance_content_frame,
AddToBackStack = true)]
public class AttendanceFragmentSetpOne : BaseFragment<AttendanceViewModel>, IOnClickListener
{
protected override int FragmentLayoutId => Resource.Layout.fragment_attendance_step_one;
//Some logic
}
但是当我做这个时,应用程序永远不会从闪屏中通过。
我希望自己解释一下,有人帮助我解决这个“问题”。
提前致谢。
解决方案
推荐阅读
- for-loop - Python - for 循环 - 理解
- java - 反序列化对象运行问题
- json - Dialogflow Fulfillment - 在 Google Spreedsheet 中创建新行(使用 Sheetdb io) - 这是代码
- c# - 验证 txt 文件中是否存在字符串并更新以前使用的 txt 文件
- amazon-web-services - 为什么我在云端收到所有大写请求?
- php - 与来自旧 Moodle 平台的用户建立新的 Moodle 平台
- php - 无法让 ACF 字段与 php 代码一起使用
- javascript - Angular - 如果我希望在按下两个按钮或其中一个按钮发生更改时发生某个动作,那么使用什么生命周期事件?
- java - 如何使用语言模型扩展 Lucene?
- php - Laravel Spatie - 为什么显示的 [object Object] 不是来自数据库的确切值?