【问题标题】:MvvmCross ViewPager not show in ActivityMvvmCross ViewPager 不显示在活动中
【发布时间】:2017-12-21 08:34:08
【问题描述】:

我想在活动中显示几个与 viewpager 共享相同视图模型的选项卡。我正在使用 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>();

但是,就我而言,我没有每个片段的视图模型。我手头的解决方法是将 viewpager 移动到活动中的片段。

如何在活动中显示没有自己的视图模型的 viewpager 片段?

谢谢,

尼克

【问题讨论】:

  • 约克。您提到的示例将 viewpager 托管在片段中,而不是活动中。在片段中这样做没有问题。谢谢。
  • 我看不出有任何理由说明它对于位于 Activity 中的 ViewPager 不起作用。我建议您继续尝试该替代方案。 Playground TestProject 在 TabsRootView/TabsRootViewModel github.com/MvvmCross/MvvmCross/tree/develop/TestProjects/… 中涵盖了该场景。您能否与我们分享一些您的 Activity 代码?
  • nmilcoff,我确实检查了 Playground 示例。如上所述,它显示了导航到 tabviewmodel 的选项卡片段。每个选项卡都需要一个视图模型,但我对所有选项卡都有一个视图模型。谢谢。

标签: android xamarin mvvmcross


【解决方案1】:

上面的代码在片段中工作也可以在活动中工作。 xml 中存在导致 viewpager 不显示的问题。对不起。

感谢所有帮助过的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-28
    相关资源
    最近更新 更多