如何在Layout中添加片段

时间:2014-09-26 09:08:58

标签: android android-layout android-fragments

我有一个主片段,其布局如下:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/fragment_main_layout"
    android:orientation="vertical">

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

</LinearLayout>

我想在SupportMapFragment中引用MainFragment。我是这样做的:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ...
    mFragment1 = (SupportMapFragment)getFragmentManager().findFragmentById(R.id.fragment_map_fragment);
    mFragment2 = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.fragment_map_fragment);
    ...
}

mFragment1mFragmanet2都为空。怎么做得好?

修改 我不确定它是否重要,但MainFragment是另一个片段的孩子。

2 个答案:

答案 0 :(得分:0)

使用com.google.android.gms.maps.SupportMapFragment类的

片段,此片段用于显示Android SupportMapFragment。,因此请使用getSupportFragmentManager()

    mFragment1 = (SupportMapFragment)getFragmentManager().findFragmentById(R.id.fragment_map_fragment);

replace with 

    mFragment1 = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.fragment_map_fragment);

答案 1 :(得分:0)

看起来你甚至没有给主要片段充气。

View view = inflater.inflate( R.id.main_fragment, container, false );
mFragment2 = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.fragment_map_fragment);