无法解析方法“getMapAsync”

Jr *_*nio 3 android google-maps android-studio

请原谅我的任何语法错误。我按照教程查看了一个片段中的谷歌地图,但是出了点问题。

这是我的文件 .java 与片段挂钩:

public class MapFragment extends Fragment implements OnMapReadyCallback{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_map, container, false);

}

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

    MapFragment fragment = (MapFragment)getChildFragmentManager().findFragmentById(R.id.map);
    fragment.getMapAsync(this); //Here i get the error
}

@Override
public void onMapReady(GoogleMap googleMap) {

}
Run Code Online (Sandbox Code Playgroud)

}

这是布局片段:

<fragment
    android:id="@+id/map"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.MapFragment"></fragment>
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

谢谢!

Dee*_*yal 6

您必须使用SupportMapFragment而不是MapFragment
在 XML 中

<fragment
    android:id="@+id/map"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"></fragment>
Run Code Online (Sandbox Code Playgroud)

在片段中

SupportMapFragment fragment = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map);
fragment.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)