我有一个FragmentActivity,我想在其中使用一个地图片段。我有一个问题,让支持片段管理器访问它。

 if (googleMap == null) {
            googleMap = ((SupportMapFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.map1)).getMap();

            // check if map is created successfully or not
            if (googleMap == null) {
                Toast.makeText(getApplicationContext(),
                        "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                        .show();
            }
        }

            // create marker
            MarkerOptions marker = new MarkerOptions().position(
                    new LatLng(latitude, longitude)).title("Hello Maps ");

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(latitude, longitude)).zoom(15).build();

            googleMap.animateCamera(CameraUpdateFactory
                    .newCameraPosition(cameraPosition));

            // adding marker
            googleMap.addMarker(marker);

当前回答

你所需要做的就是使用

getFragmentManager()

方法。它会给你支持片段管理器,当你在添加这个片段时使用它。

文档片段

其他回答

简单地得到它像这样-

getFragmentManager() // This will also give you the SupportFragmentManager or FragmentManager based on which Fragment class you have extended - android.support.v4.app.Fragment OR android.app.Fragment.

OR

getActivity().getSupportFragmentManager();

在你的片段的onActivityCreated()方法和任何方法后被调用的onActivityCreated()。

如果您在活动中使用片段管理器

getSupportFragmentManager()

supportFragmentManager

如果你在片段中使用片段管理器

childFragmentManager

在Java中,你可以用

getChildFragmentManager()

在kotlin

childFragmentManager

在片段中获取fragmentManager的最佳方法是调用新方法

getParentFragmentManager()

或者在kotlin文件中使用属性访问语法

parentFragmentManager

这指定了将要加载的fragmentManager(在子片段和父片段之间选择)

您可以直接拨打

getParentFragmentManager()  

获取片段管理器。注意,getFragmentManager()也可以工作,但已被标记为已弃用。