FragmentTabHost FragmentManager 无效
FragmentTabHost FragmentManager is invalid
我正在 visual studio 中使用 xamarin.android 开发一个应用程序,我正在尝试在我的应用程序的按钮上添加选项卡
这是我的代码
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
FragmentTabHost fragmentTabHost = (FragmentTabHost)FindViewById(Resource.Id.tabhost);
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
}
然后我得到这个错误
cannot convert from 'Android.App.FragmentManager' to 'Android.Support.V4.App.FragmentManager'
当我改变这个时
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
对此
fragmentTabHost.Setup(this, Android.Support.V4.App.FragmentManager, Resource.Id.tabcontent);
我收到了这个错误
'FragmentManager' is a type, which is not valid in the given context
我已经坚持了一段时间,感谢任何帮助
编辑:
当我尝试使用此代码添加标签时
fragmentTabHost.AddTab(fragmentTabHost.NewTabSpec("fragmenta").SetIndicator("Fragment A"), new SubsFragment(), null);
我收到这个错误
cannot convert fragment to java.Lang.class
欢迎大家提出建议
改变
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
到
fragmentTabHost.Setup(this, this.SupportingFragmentManager, Resource.Id.tabcontent);
编译器需要 FragmentManager 的支持版本,您需要这样指定它。只输入 Android.Support.V4.App.FragmentManager
是行不通的,因为那是一个 class 的名称,它需要一个 type Android.Support.V4.App.FragmentManager
.[=20= 的实例化对象]
另一件重要的事情是,如果您查看代码 this.SupportingFragmentManager
,您会注意到使用了关键字 this
。如果您从 FragmentActivity
调用 this.SupportingFragmentManager
,代码将按原样运行,否则获取对您的 FragmentActivity 的引用并在其上调用 SupportingFragmentManager
。像这样:
fragmentTabHost.Setup(this, myFragmentActivity.SupportingFragmentManager, Resource.Id.tabcontent);
希望对您有所帮助。
我正在 visual studio 中使用 xamarin.android 开发一个应用程序,我正在尝试在我的应用程序的按钮上添加选项卡
这是我的代码
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
FragmentTabHost fragmentTabHost = (FragmentTabHost)FindViewById(Resource.Id.tabhost);
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
}
然后我得到这个错误
cannot convert from 'Android.App.FragmentManager' to 'Android.Support.V4.App.FragmentManager'
当我改变这个时
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
对此
fragmentTabHost.Setup(this, Android.Support.V4.App.FragmentManager, Resource.Id.tabcontent);
我收到了这个错误
'FragmentManager' is a type, which is not valid in the given context
我已经坚持了一段时间,感谢任何帮助
编辑:
当我尝试使用此代码添加标签时
fragmentTabHost.AddTab(fragmentTabHost.NewTabSpec("fragmenta").SetIndicator("Fragment A"), new SubsFragment(), null);
我收到这个错误
cannot convert fragment to java.Lang.class
欢迎大家提出建议
改变
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
到
fragmentTabHost.Setup(this, this.SupportingFragmentManager, Resource.Id.tabcontent);
编译器需要 FragmentManager 的支持版本,您需要这样指定它。只输入 Android.Support.V4.App.FragmentManager
是行不通的,因为那是一个 class 的名称,它需要一个 type Android.Support.V4.App.FragmentManager
.[=20= 的实例化对象]
另一件重要的事情是,如果您查看代码 this.SupportingFragmentManager
,您会注意到使用了关键字 this
。如果您从 FragmentActivity
调用 this.SupportingFragmentManager
,代码将按原样运行,否则获取对您的 FragmentActivity 的引用并在其上调用 SupportingFragmentManager
。像这样:
fragmentTabHost.Setup(this, myFragmentActivity.SupportingFragmentManager, Resource.Id.tabcontent);
希望对您有所帮助。