3

我正在开发一个具有垂直选项卡的活动,其中一个选项卡也包含水平选项卡。当我尝试这样做时,我得到了类转换异常,因为选项卡内容应该继承 MvxFragment 并且我让它继承了 MvxTabsFragmentActivity。这是活动的代码:

using Android.App;
using Android.OS;
using Android.Views;
using Cirrious.MvvmCross.Droid.Fragging;
using Cirrious.MvvmCross.Droid.Views;
using Xyz.Yzx.ViewModels;


namespace Xyz.Yzx.Core.Views
{
    [Activity(Label = "View for FirstViewModel",MainLauncher = true)]
    public class FirstView : MvxTabsFragmentActivity
    {
        public FirstViewModel FirstViewModel
        {
            get { return (FirstViewModel)base.ViewModel; }
        }

        public FirstView()
            : base(Resource.Layout.ClassMate_Page, Resource.Id.actualtabcontent)
        {
        }

        protected override void AddTabs(Bundle args)
        {

            AddTab<Favourite>("Tab2", "Tab 2", args, FirstViewModel.MainViewModel);
            // note that

        }
        public override bool OnCreateOptionsMenu(IMenu menu)
        {

            MenuInflater.Inflate(Resource.Menu.Main, menu);
            return true;
        } 
    }

}

这是“Favorite”类(标签片段活动):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Cirrious.MvvmCross.Droid.Fragging.Fragments;

namespace Xyz.Core.Views
{
    public class Favourite : MvxTabsFragmentActivity
    {
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            return inflater.Inflate(Resource.Layout.device_view, container, false);
        }
    }
}

那么如何将标签放在标签内容中?

4

1 回答 1

5

片段包含在http://slodge.blogspot.co.uk/2013/06/n26-fragments-n1-days-of-mvvmcross.html

在选项卡中显示片段显示在https://github.com/slodge/MvvmCross-Tutorials/tree/master/Fragments

如果您的 UX 需要片段内的标签,那么:

  • 这不是 mvvmCross 开箱即用支持的场景(这不是我以前见过的场景)
  • 您将无法使用 anActivity作为 tabhost 片段的基础。
  • 相反,您需要找到一种在片段中显示选项卡的方法。选项卡托管代码并不长 - 请参阅MvxTabsFragmentActivity.cs - 我想您应该能够将此代码移植到您自己的专用片段中 - 但这需要一些工作,就像没有 MvvmCross 一样。
于 2013-06-26T10:28:38.183 回答