我正在 Xamarin 中编写 Google 地图应用程序,并已成功扩展该类以使用
Android.Support.V4.App.FragmentActivity
。
我现在想将
Android.Support.V4.App.FragmentActivity
更改为 Android.Support.V4.App.Fragment
,这样我就可以拥有一个带有 Google 地图片段的 ViewPager
。
由于我现在已将类更改为从
Android.Support.V4.App.Fragment
扩展,因此我无法引用 SupportFragmentManager
。
这是我的代码:
private void InitMapFragment()
{
_mapFragment = SupportFragmentManager.FindFragmentByTag("map") as SupportMapFragment;
if (_mapFragment == null)
{
GoogleMapOptions mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeNormal)
.InvokeZoomControlsEnabled(true)
.InvokeCompassEnabled(true);
FragmentTransaction fragTx = SupportFragmentManager.BeginTransaction();
_mapFragment = SupportMapFragment.NewInstance(mapOptions);
fragTx.Add(Resource.Id.map, _mapFragment, "map");
fragTx.Commit();
}
}
如何在
SupportFragmentManager
中引用 Android.Support.V4.App.Fragment
?
提前致谢
从 Fragment 中,如果您有嵌套片段,您可以使用
getFragmentManager()
或 getChildFragmentManager()
获取片段管理器,但是您仍然需要 Activity 来扩展 FragmentActivity,您可以在其中包含 viewpager。或者你可以有这样的东西:
这样您以后就可以用其他 Fragment 替换 MainFragment。
可能你的MainActivity类继承自ComponentActivity,然后将其更改为AppCompatActivity 因为 AppCompatActivity 类支持 supportFragmentManager。 这不会对您以前的代码造成相当大的损害