我目前正在使用我的主要活动作为NavigationDrawer进行应用程序。因此,要浏览我的应用程序,任何其他“活动”都是一个片段,在一个片段中,我需要放置一个GoogleMap支持片段。关键是,在我的片段中,当我getFragmentManager.findFragmentById(R.id.map);
时,它返回null。
以下是我的代码。
//fragment_home.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
//My HomeFragment
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_home, container, false);
FragmentManager manager = getFragmentManager();
SupportMapFragment mapFragment = (SupportMapFragment)manager.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
return view;
}
有人知道如何解决这个问题吗?我已经在这个网站和其他许多网站上寻找解决方案,但我无法想象如何将片段存储在我的“父”片段的xml布局中。
感谢您的帮助, 亲切, Matthieu Meunier
答案 0 :(得分:2)
如果您要在SupportMapFragment
内使用Fragment
,则无法使用getFragmentManager
方法。而是使用以下方法。
SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map);