2

com.google.android.gms.maps.SupportMapFragment でマップをロードしようとしていますが、findFragmentById で null を取得します。

私のxmlフラグメントファイル:

<fragment
    android:id="@+id/map"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    class="com.google.android.gms.maps.SupportMapFragment" />

MainActivity.java:

public class MainActivity extends ActionBarActivity{
    private void selectItem(int position){
        //some code
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, new MyMapFragment).commit();
    }
}

マップフラグメント:

MyMapFragment extends android.support.v4.app.Fragment{
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        SupportMapFragment smf = (SupportMapFragment)  getActivity().getSupportFragmentManager().findFragmentById(R.id.map);
        //here smf is null
    }
}
4

1 に答える 1

0

これが答えです:

注: レイアウトにフラグメントが含まれている場合、レイアウトをフラグメントにインフレートすることはできません。ネストされたフラグメントは、フラグメントに動的に追加された場合にのみサポートされます。

さらに、ネストされたフラグメントで遊ぶときは、 を使用しますgetChildFragmentManager()

于 2015-02-23T08:38:51.877 に答える