android getActivity()。getSupportFragmentManager()。findFragmentById为null

时间:2013-08-11 17:04:04

标签: android android-fragments android-maps android-maps-v2

我正在尝试使用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();
    }
}

MapFragment:

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
    }
}

1 个答案:

答案 0 :(得分:0)

This is the answer:

  

注意:当布局包含片段时,您无法将布局扩展为片段。只有动态添加到片段时才支持嵌套片段。

此外,在使用嵌套片段时,请使用getChildFragmentManager()