我正在实现Android应用程序,我正在尝试在另一个片段中使用SupportMapFragment。 地图片段工作正常,我可以看到地图,我没有错误。 但是,在主要活动中,我试图从嵌套片段中获取GoogleMap对象,但我得到的只是null。任何想法我怎么能克服这个?
main_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
片段layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#E8E8E8">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="117dp"
android:layout_margin="5dp" />
<LinearLayout/>
MainActivity.java中的::onCreate()
// Getting reference to the SupportMapFragment of activity_main.xml
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
//fm is null here
答案 0 :(得分:1)
目前还不清楚你实际上拥有“嵌套片段”。我只看到一个片段:SupportMapFragment
。
如果您的ViewPager
位于片段内,并且FragmentPagerAdapter
正在使用SupportMapFragment
,那么您需要在孩子上调用findFragmentById()
FragmentManager
,FragmentPagerAdapter
正在使用的那个。
如果您的ViewPager
不在片段内,那么我不相信您有嵌套片段。但是,您的ViewPager
可能尚未在整个活动的onCreate()
中实例化任何网页,因此您的片段尚不存在。等到FragmentPagerAdapter
创建了SupportMapFragment
,然后尝试使用它。