xamarin.android之如何使用 mvvmcross 将子选项卡添加到选项卡内容

哈哈 阅读:52 2024-11-01 17:39:52 评论:0

我正在处理一个具有垂直选项卡的事件,其中一个选项卡也包含水平选项卡。当我尝试这样做时,我得到了类转换异常,因为选项卡内容应该继承 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; 
        }  
    } 
 
} 

这是“收藏夹”类(选项卡片段事件):

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

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

请您参考如下方法:

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

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

如果您的用户体验需要片段内的选项卡,那么:

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


标签:Android
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号