android getActivity().getSupportFragmentManager().findFragme



我正试图用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()

相关内容

  • 没有找到相关文章

最新更新