我有一个主片段,其布局如下:
<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);
...
}
mFragment1
和mFragmanet2
都为空。怎么做得好?
修改
我不确定它是否重要,但MainFragment
是另一个片段的孩子。
答案 0 :(得分:0)
片段,此片段用于显示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);