android - MvxCachingFragmentStatePagerAdapter 传递参数给viewmodel

标签 android xamarin mvvmcross

当我为 viewpager 构建 fragment 列表时,如何将参数传递给我的 View 模型?

我尝试在“MvxCachingFragmentStatePagerAdapter.FragmentInfo”中使用“parametervaluesobject”,但这似乎不起作用。

[MvxFragment(typeof(MainViewModel), Resource.Id.content_frame, true)]
[Register("mvvmcrosslearning.droid.fragments.DateFragment")]
public class DateFragment : BaseFragment<DateViewModel>
{
    protected override int FragmentId => Resource.Layout.fragment_date;

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        var view = base.OnCreateView(inflater, container, savedInstanceState);

        var viewPager = view.FindViewById<ViewPager>(Resource.Id.viewpager);
        if (viewPager != null)
        {
            var fragments = new List<MvxCachingFragmentStatePagerAdapter.FragmentInfo>();
            for (int i = 0; i < 3; i++)
                fragments.Add(new MvxCachingFragmentStatePagerAdapter.FragmentInfo($"Date {i}",
                    typeof(RecyclerViewFragment), typeof(RecyclerViewModel), new Device() { Date = $"Date {i}" }));


            viewPager.Adapter = new MvxCachingFragmentStatePagerAdapter(Activity,ChildFragmentManager,fragments);
            viewPager.OffscreenPageLimit = 1;
        }

        var tabLayout = view.FindViewById<TabLayout>(Resource.Id.tabs);
        tabLayout.SetupWithViewPager(viewPager);

        return view;

    }
}

最佳答案

谢谢沉约克。我找到了如何在我的 ViewModel 中获取数据: 只需在 RecyclerViewModel 的 ViewModel 中覆盖该方法即可:

    protected override void InitFromBundle(IMvxBundle parameters)
    {
        base.InitFromBundle(parameters);
        Device = new Device()
        {
            Date = parameters.Data["Date"]
        };
        RaisePropertyChanged(() => Device);
    }

关于android - MvxCachingFragmentStatePagerAdapter 传递参数给viewmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951264/

相关文章:

image-processing - 使用 MVVM Cross 对 Android 中的列表的大位图进行重新采样

android - 在 eclipse 上设置 actionbarsherlock 的演示

android - 检查 Android 较低 api 兼容性的代码

ios - WKWebView 不从特定页面加载图像

java - 在 Xamarin 中创建 Android 服务并从 Java native 客户端应用程序调用其方法

android - ParseInstallation.SaveAsync() 在 Xamarin 表单 Android 上导致 UnhandledException

android - 如何在JNI中调用Android框架C++函数?

android - 本项目使用AndroidX依赖,但 'android.useAndroidX'属性未启用

image - 使用 mvvmcross 和 mono 选择图像时出现问题

xamarin.ios - UIActivityIndi​​catorView.StartAnimating 重写 UIActivityIndi​​catorView.Hidden 绑定(bind)