xamarin 在片段中引用SupportFragmentManager

5uzkadbs  于 2023-09-28  发布在  其他
关注(0)|答案(2)|浏览(104)

我正在用Xamarin编写一个GoogleMap应用程序,并成功地扩展了类以使用Android.Support.V4.App.FragmentActivity
我现在想将Android.Support.V4.App.FragmentActivity更改为Android.Support.V4.App.Fragment,这样我就可以拥有一个包含Google Map片段的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
Thanks in advance

km0tfn4u

km0tfn4u1#

从一个Fragment中,你可以得到一个fragment Manager,如果你有嵌套的fragment,可以使用getFragmentManager()getChildFragmentManager(),但是你仍然需要你的Activity来扩展FragmentActivity,你可以在其中使用viewpager。或者你可以有这样的东西:

这样以后就可以用其他片段替换MainFragment。

bwntbbo3

bwntbbo32#

可能是您的MainActivity类继承自ComponentActivity,然后将其更改为AppCompatActivity,因为AppCompatActivity类支持supportFragmentManager。这不会对你以前的代码造成很大的损害
如果在应用程序崩溃的情况下使用FragmentActivity而不是AppComatActivity继承

相关问题