Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android maps v2-地图视图插脚意外地在恢复时重新出现_Java_Android_Google Maps_Android Maps V2_Android Maps - Fatal编程技术网

Java Android maps v2-地图视图插脚意外地在恢复时重新出现

Java Android maps v2-地图视图插脚意外地在恢复时重新出现,java,android,google-maps,android-maps-v2,android-maps,Java,Android,Google Maps,Android Maps V2,Android Maps,“我的视图”页面中包含地图视图的选项卡显示了一些意外行为。出于某种原因,每当我转到其他选项卡并返回“地图视图”选项卡时,地图视图中的所有4个管脚都会出现,而其中只有2个管脚会出现。有人知道为什么会这样吗?可以采取什么措施来防止这种情况发生 第1阶段(轻弹顶部开关) 第二阶段(轻弹底部开关) 第3阶段(切换到其他选项卡,然后返回地图选项卡) Java类 public class FragmentCentralPark extends android.support.v4.app.Fragme

“我的视图”页面中包含地图视图的选项卡显示了一些意外行为。出于某种原因,每当我转到其他选项卡并返回“地图视图”选项卡时,地图视图中的所有4个管脚都会出现,而其中只有2个管脚会出现。有人知道为什么会这样吗?可以采取什么措施来防止这种情况发生

第1阶段(轻弹顶部开关)

第二阶段(轻弹底部开关)

第3阶段(切换到其他选项卡,然后返回地图选项卡)

Java类

public class FragmentCentralPark extends android.support.v4.app.Fragment implements OnMapReadyCallback {

    public FragmentCentralPark() {
        // Required empty constructor
    }

    GoogleMap mGoogleMap;
    MapView mMapView;
    SwitchCompat swt0;
    SwitchCompat swt1;

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_centralpark, container, false);

        mMapView = (MapView) v.findViewById(R.id.map_centralpark);
        mMapView.onCreate(savedInstanceState);
        mMapView.getMapAsync(this); //this is important

        swt0 = (SwitchCompat) v.findViewById(R.id.switch0_map_centralpark);
        swt1 = (SwitchCompat) v.findViewById(R.id.switch1_map_centralpark);

        return v;
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mGoogleMap = googleMap;
        mGoogleMap.getUiSettings().setZoomControlsEnabled(true);
        mGoogleMap.setBuildingsEnabled(true);
        mGoogleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

        swt0.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                initMap0(isChecked);
            }
        });
        swt1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                initMap1(isChecked);
            }
        });

        initMap0(swt0.isChecked());
        initMap1(swt1.isChecked());


        // Add markers and move the camera
        LatLng centralpark_museum1 = new LatLng(40.785407, -73.957145);
        mGoogleMap.addMarker(new MarkerOptions()
                .position(centralpark_museum1)
        );

        LatLng centralpark_museum2 = new LatLng(40.782993, -73.958985);
        mGoogleMap.addMarker(new MarkerOptions()
                .position(centralpark_museum2)
        );


        // Updates the location and zoom level of the MapView
        CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(40.780437, -73.981063), 16);
        mGoogleMap.animateCamera(cameraUpdate);
    }

    @Override
    public void onResume() {
        super.onResume();
        mMapView.onResume();
    }

    @Override
    public void onPause() {
        super.onPause();
        mMapView.onPause();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        mMapView.onDestroy();
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mMapView.onSaveInstanceState(outState);
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        mMapView.onLowMemory();
    }

    private void initMap0(boolean isChecked){
        if (isChecked) {
            mGoogleMap.setMapStyle(new MapStyleOptions(getResources()
                    .getString(R.string.style_json)));
        } else {
            mGoogleMap.setMapStyle(null);
        }
    }

    private void initMap1(boolean isChecked){
        if (isChecked) {
            mGoogleMap.clear();

            // Add markers and move the camera
            LatLng centralpark__theatre1 = new LatLng(40.780287, -73.968832);
            mGoogleMap.addMarker(new MarkerOptions()
                    .position(centralpark_theatre1)
            );

            LatLng centralpark__theatre2 = new LatLng(40.780437, -73.981063);
            mGoogleMap.addMarker(new MarkerOptions()
                    .position(centralpark_theatre2)
            );


            // Updates the location and zoom level of the MapView
            CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(40.780437, -73.981063), 16);
            mGoogleMap.animateCamera(cameraUpdate);
        } else {
            mGoogleMap.clear();

            // Add markers and move the camera
            LatLng centralpark_museum1 = new LatLng(40.785407, -73.957145);
            mGoogleMap.addMarker(new MarkerOptions()
                    .position(centralpark_museum1)
            );

            LatLng centralpark_museum2 = new LatLng(40.782993, -73.958985);
            mGoogleMap.addMarker(new MarkerOptions()
                    .position(centralpark_museum2)
            );


            // Updates the location and zoom level of the MapView
            CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(40.780437, -73.981063), 16);
            mGoogleMap.animateCamera(cameraUpdate);
        }
    }
}

您已经在
onMapReady
中自己添加了它们。问题解决后,只需删除块“添加标记并移动相机”。非常感谢。