188

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);
4

20 に答える 20

310

直接呼び出すことができます

getParentFragmentManager()  

フラグメントマネージャーを取得します。getFragmentManager()も機能しますが、非推奨としてマークされていることに注意してください。

于 2013-11-27T08:51:37.807 に答える
86

あなたがする必要があるのは、使用することだけです

getFragmentManager()

フラグメントのメソッド。このフラグメントを追加するときに使用すると、サポート フラグメント マネージャーが提供されます。

フラグメントのドキュメント

于 2013-11-27T09:00:14.113 に答える
15

この問題があり、API レベル 21+ を使用している場合は、次のようにします。

   map = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map))
                    .getMap();

これは、フラグメント内で使用されたときにマップを取得します。

于 2016-02-16T19:50:06.863 に答える
11

Javaでは、次のように置き換えることができます

getChildFragmentManager()

kotlinでは、次のように簡単にします

childFragmentManager

それが役立つことを願っています:)

于 2020-02-28T07:45:33.847 に答える
1

次のように簡単にアクセスできます

Context mContext;

public View onCreateView(LayoutInflater inflater,
                             @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

mContext = getActivity();

}

そして使用する

FragmentManager fm = ((FragmentActivity) mContext)
                        .getSupportFragmentManager();
于 2016-12-29T10:47:34.653 に答える
0

フラグメント内で fragmentManager を取得する最善の方法は、新しいメソッドを呼び出すことです

getParentFragmentManager()

または、kotlin ファイルでプロパティ アクセス構文を使用します。

parentFragmentManager

これは、ロードされる fragmentManager を指定します (子フラグメントと親フラグメントの間で選択)

于 2021-12-16T08:20:54.160 に答える