I'm developing an app using xamarin.android in visual studio, and i'm trying to add Tabs on the buttom of my app
And this is my code
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);
}
Then i get this error
cannot convert from 'Android.App.FragmentManager' to 'Android.Support.V4.App.FragmentManager'
And when i change this
fragmentTabHost.Setup(this, FragmentManager, Resource.Id.tabcontent);
To this
fragmentTabHost.Setup(this, Android.Support.V4.App.FragmentManager, Resource.Id.tabcontent);
I get this error instead
'FragmentManager' is a type, which is not valid in the given context
I've been stuck on this for a while, any help is appreciated
EDIT :
When i try to add a tab with this code
fragmentTabHost.AddTab(fragmentTabHost.NewTabSpec("fragmenta").SetIndicator("Fragment A"), new SubsFragment(), null);
I get this error
cannot convert fragment to java.Lang.class
Any advice is wellcome
Change
to
The compiler is expecting the support version of FragmentManager and you need to specify it as such. Just putting
Android.Support.V4.App.FragmentManagerdoesn't work because that's a name of a class and it's expecting an instantiated object of typeAndroid.Support.V4.App.FragmentManager.Another important thing, if you look at the code
this.SupportingFragmentManager, you'll notice the keywordthisbeing used. If you're callingthis.SupportingFragmentManagerfrom aFragmentActivitythe code will work as is, otherwise get a reference to your FragmentActivity and callSupportingFragmentManageron it. Like so:fragmentTabHost.Setup(this, myFragmentActivity.SupportingFragmentManager, Resource.Id.tabcontent);Hope this helps.