【问题标题】:How can I add sub-tabs to tab content using mvvmcross如何使用 mvvmcross 将子选项卡添加到选项卡内容
【发布时间】:2013-06-26 10:03:51
【问题描述】:

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

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;
        } 
    }

}

这里是“Favourite”类(Tab Fragment Activity):

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);
        }
    }
}

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

【问题讨论】:

    标签: xamarin.android xamarin mvvmcross


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我的回答希望涵盖技术思想。从我自己的角度来看,我鼓励您考虑替代用户体验方法 - 选项卡中的选项卡对我来说听起来不像是一个很好的现代 UX。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    相关资源
    最近更新 更多