【问题标题】:Referencing the SupportFragmentManager in a fragment在片段中引用 SupportFragmentManager
【发布时间】:2014-05-24 06:19:09
【问题描述】:

我正在 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();
    }
}

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

提前致谢

【问题讨论】:

    标签: android android-fragments android-viewpager xamarin supportmapfragment


    【解决方案1】:

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

    因此您可以稍后将 MainFragment 替换为其他 Fragment。

    【讨论】:

    • 如何调用 SupportFragmentManager,而不是 FragmentManager?
    • 从一个Fragment你都可以getActivity().getSupportFragmentManager()
    猜你喜欢
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多