如何在非支持空间中使用支持FragmentManager?

时间:2015-11-05 11:12:15

标签: android xamarin

我正在尝试使用tabhost实现一个视图,该视图来自我的GeneralFragment类:

using Android.App;
namespace mynamespace
  {
  public class GeneralFragment : Fragment
  { ... }
}

现在,上级父类的子类就像这样开始

using Android.App;
using Android.Support.V4.App;

namespace mynamespace
{
    public class OverviewFragment : GeneralFragment
    {
        FragmentTabHost _tabhost; // Should I do this?

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState)
        {
            View root = inflater.Inflate(Resource.Layout.F_Overview, container, false); 
            _tabhost = root.FindViewById<FragmentTabHost>(Resource.Id.tabhost);
            // Error line!
            // ChildFragmentManager makes problems.
            _tabhost.Setup(_parent,  ChildFragmentManager, 
                   Resource.Id.realtabcontent);
            _tabhost.AddTab(_tabhost.NewTabSpec("ATab").SetIndicator("ATab"),
                Java.Lang.Class.FromType(typeof(CreateFragment)), null);
            return root;
        }
    }
}

我得到的错误是

Cannot convert from 'Android.App.FragmentManager' to 'Android.Support.V4.App.FragmentManager'

1 个答案:

答案 0 :(得分:0)

GeneralFragment 设为V4版本,而不是片段

using Android.App;
namespace mynamespace
  {
  public class GeneralFragment : Android.Support.V4.App.Fragment
  { ... }
  }  

片段!= 支持.V4.App.Fragments 不一样(他们不兼容)。
你不能把它们组合在一起。
此外,尝试将 SupportFragmentManager 用于V4版本(ChildFragmentManager仅适用于V4.Fragment)。

享受!