我正试图用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
}
}
这就是答案:
注意:当一个布局包含一个片段时,不能将该布局膨胀为一个片段。只有在动态添加到片段时才支持嵌套片段。
此外,在玩嵌套片段时,请使用getChildFragmentManager()
。