有无办法接收悬念的通知?-英雄云拓展知识分享
372
2024-01-22
当我为ViewPager构造片断列表时,如何将参数传递给我的ViewModel?
我尝试在“ 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);
}
免责声明:
本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。
发表评论
暂时没有评论,来抢沙发吧~