我正在开发一个在visual中使用xamarin.android的应用程序,并试图在我的应用程序的屁股上添加Tabs
这是我的密码
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);
}那么我就得到了这个错误
无法从“Android.App.FragmentManager”转换为“Android.Support.V4.App.FragmentManager”
当我改变这个
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);到这个
fragmentTabHost.Setup(this, Android.Support.V4.App.FragmentManager, Resource.Id.tabcontent);我得到了这个错误
'FragmentManager‘是一种类型,在给定的上下文中无效
我在这个问题上已经坚持了一段时间了,任何帮助都很感激
编辑:
当我尝试用下面的代码添加一个选项卡时
fragmentTabHost.AddTab(fragmentTabHost.NewTabSpec("fragmenta").SetIndicator("Fragment A"), new SubsFragment(), null);我知道这个错误
无法将片段转换为java.Lang.class
任何建议都是惠康的
发布于 2018-02-23 21:57:04
变化
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);至
fragmentTabHost.Setup(this, this.SupportingFragmentManager, Resource.Id.tabcontent);编译器需要FragmentManager的支持版本,您需要将其指定为支持版本。仅仅将Android.Support.V4.App.FragmentManager放置不起作用,因为这是一个类的名称,并且它期待一个类型为Android.Support.V4.App.FragmentManager的实例化对象。
另一件重要的事情是,如果您查看代码this.SupportingFragmentManager,您将注意到正在使用的关键字this。如果从this.SupportingFragmentManager调用FragmentActivity,代码将按原样工作,否则将获得对FragmentActivity的引用并在其上调用SupportingFragmentManager。就像这样:
fragmentTabHost.Setup(this, myFragmentActivity.SupportingFragmentManager, Resource.Id.tabcontent);
希望这能有所帮助。
https://stackoverflow.com/questions/48956644
复制相似问题