2

我正在实现和 Android 应用程序,我试图在另一个片段中使用 SupportMapFragment。地图片段工作正常,我可以看到地图并且没有错误。但是,在主要活动中,我试图从嵌套片段中获取 GoogleMap 对象,但我得到的只是空值。知道我该如何克服这个问题吗?

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" />

片段布局.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
4

1 回答 1

1

目前还不清楚您实际上在这里“嵌套片段”。我只看到一个片段:SupportMapFragment.

如果您ViewPager在片段内,并且您FragmentPagerAdapter正在使用,那么SupportMapFragment您需要调用正在使用findFragmentById()childFragmentManagerFragmentPagerAdapter

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

于 2013-07-29T12:13:46.177 回答