在片段中引用 SupportFragmentManager

use*_*779 5 android android-fragments android-viewpager xamarin supportmapfragment

我正在 Xamarin 中编写 Google 地图应用程序,并已成功扩展该类以使用Android.Support.V4.App.FragmentActivity.

我现在想将 a 更改Android.Support.V4.App.FragmentActivity为 a Android.Support.V4.App.Fragment,以便我可以拥有ViewPager一个包含 Google 地图片段的 a。

由于我现在已更改了要扩展的类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();
    }
}
Run Code Online (Sandbox Code Playgroud)

如何SupportFragmentManager在 a 中引用Android.Support.V4.App.Fragment?

提前致谢

ILo*_*cho 5

从片段中,您可以使用片段管理器,getFragmentManager()或者getChildFragmentManager()如果您有嵌套片段,但您仍然需要您的 Activity 来扩展 FragmentActivity,您可以在其中包含 viewpager。或者你可以有这样的东西:

在此输入图像描述

这样您以后就可以用其他 Fragment 替换 MainFragment。

  • 如何调用 SupportFragmentManager,而不是 FragmentManager? (3认同)
  • 从 Fragment 中,您都可以 getActivity().getSupportFragmentManager() (3认同)