我想在活动中显示与viewpager共享相同viewmodel的几个标签。我正在使用MvvmCross 5.6.2。
当我在片段中执行此操作时,viewpager会正确显示。使用相同的方法,我在一个活动中将标签片段添加到viewpager,其代码如下:
var viewPagerFragmentList = new List<MvxViewPagerFragmentInfo>
{
new MvxViewPagerFragmentInfo("Personal", typeof (SettingPersonalFragment), ViewModel),
new MvxViewPagerFragmentInfo("Preference", typeof (SettingPreferenceFragment), ViewModel)
};
viewPager.Adapter = new MvxCachingFragmentStatePagerAdapter(this, SupportFragmentManager, viewPagerFragmentList);
var tabLayout = FindViewById<TabLayout>(Resource.Id.tabs_fragment_setting_viewpager);
tabLayout.SetupWithViewPager(viewPager);
虽然选项卡片段的OnCreate和OnCreateView已经执行,但屏幕上没有显示标签片段。
我发现最新的Playground样本也在活动中显示标签。在样本之后,我注册了片段:
[MvxTabLayoutPresentation(TabLayoutResourceId = Resource.Id.tabs_fragment_setting_viewpager, ViewPagerResourceId = Resource.Id.viewpager_fragment_setting_viewpager, Title = "Personal", ActivityHostViewModelType = typeof(SettingViewModel))]
没有运气。我在Playground中找到的最后一个显示选项卡的方法是导航到片段视图模型:
_navigationService.Navigate<Tab2ViewModel>();
_navigationService.Navigate<Tab3ViewModel>();
但是,在我的情况下,我没有每个片段的viewmodel。我手上的解决方法是将viewpager移动到活动中的片段。
如何在活动中显示没有自己的viewmodel的viewpager片段?
谢谢,
尼克
答案 0 :(得分:1)
以上代码在片段中工作也适用于活动。 xml中存在导致viewpager无法显示的问题。遗憾。
感谢所有帮助过的人。