我有Map我想要gps符号(当用户点击此符号时,它会将用户带到当前位置)。我可以在活动中完成它并且它在活动中工作正常但它在Fragment中创建问题。
CASE 1 :如果我在onCreateView
方法中编写以下代码,则会在googleMap
初始化之前调用它,以便我获得空指针异常。
((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.googlemap)).getMapAsync(this);
if(googleMap!=null){
googleMap.setMyLocationEnabled(true);
googleMap.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener() {
@Override
public boolean onMyLocationButtonClick() {
if(marker!=null){
marker.remove();
}
return false;
}
});
}
@Override
public void onMapReady(final GoogleMap googleMap) {
this.googleMap=googleMap;
googleMap.setOnMyLocationChangeListener(myLocationChangeListener);
Location myLocation = getLastKnownLocation();
}
案例2 如果我在onMapready
写这封信,那么即使不点击它,它也会自动转到当前位置。
任何想法?
答案 0 :(得分:1)
@Override
public void onMapReady(final GoogleMap googleMap) {
this.googleMap=googleMap;
this.googleMap.setMyLocationEnabled(true); // this line shows the current location button
googleMap.setOnMyLocationChangeListener(myLocationChangeListener);
Location myLocation = getLastKnownLocation();
}
答案 1 :(得分:0)
通过从onMapReady中删除googleMap.setOnMyLocationChangeListener(myLocationChangeList ener)来解决问题