SupportMapFragment嵌套在另一个片段中

时间:2013-07-29 11:53:03

标签: android google-maps supportmapfragment

我正在实现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

1 个答案:

答案 0 :(得分:1)

目前还不清楚你实际上拥有“嵌套片段”。我只看到一个片段:SupportMapFragment

如果您的ViewPager位于片段内,并且FragmentPagerAdapter正在使用SupportMapFragment,那么您需要在孩子上调用findFragmentById() FragmentManagerFragmentPagerAdapter正在使用的那个。

如果您的ViewPager不在片段内,那么我不相信您有嵌套片段。但是,您的ViewPager可能尚未在整个活动的onCreate()中实例化任何网页,因此您的片段尚不存在。等到FragmentPagerAdapter创建了SupportMapFragment然后尝试使用它。