1

我不断收到支持地图片段的错误,我是 android 和 java 的新手,所以,没有它说的答案';' 是预期的,但是一旦在获取子片段管理器之前插入,它会使支持地图片段无法访问,并且我在整行中都出现错误。

这是我的课

package com.example.hp_user.shoutfinal28;


import android.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;


public class FragmentShouts_Maps extends Fragment implements OnMapReadyCallback {


public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Get the view from fragment shouts.xml
    View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
    return view;

    SupportMapFragment fragment = SupportMapFragment.newInstance(); getChildFragmentManager().findFragmentById(R.id.maps);
    fragment.getMapAsync(this);
}


@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);




}

@Override
public void onMapReady (GoogleMap googleMap) {

}



}

这是我的 xml 文件

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment android:id="@+id/maps"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.example.hp_user.shoutfinal28.FragmentShouts_Maps"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_alignParentEnd="true">
</fragment>

</RelativeLayout>
4

1 回答 1

2

替换此代码:

View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
return view;
SupportMapFragment fragment = SupportMapFragment.newInstance(); getChildFragmentManager().findFragmentById(R.id.maps);
fragment.getMapAsync(this);

有了这个:

View view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
SupportMapFragment fragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.maps);
if (fragment!= null) {
    fragment.getMapAsync(this);
}
return view;

您不需要创建新片段。您只需要参考您已经放置在 xml 中的地图。第二return行始终是函数的最后一行。因为一旦执行了返回行,该方法的剩余行总是被跳过。

于 2016-03-23T11:30:58.587 回答