如何在Android Map中运行Google Map动画时禁用触摸检测

1'h*_*afs 5 java android touch android-animation google-maps-android-api-2

当我使用下面的方法在谷歌地图上执行动画时,如果我们在动画执行时触摸屏幕,则动画结束.

googleMap.animateCamera(
                        CameraUpdateFactory.newCameraPosition(cameraPosition1),400,
                        new CancelableCallback() {

                              @Override
                              public void onFinish() {
                              }

                              @Override
                              public void onCancel() {
                              }
        });
Run Code Online (Sandbox Code Playgroud)

我尝试使用下面的代码禁用触摸检测

mapFragment.getView().setEnabled(false); 

googleMap.getUiSettings().setAllGesturesEnabled(false);
Run Code Online (Sandbox Code Playgroud)

但应用程序检测到触摸,尽管上面的行.你如何正确地禁用触摸?

Sha*_*dge 4

不要用于setEnabled(false)视图,而是使用setClickable(false)

mapFragment.getView().setClickable(false);

这应该有效。

编辑

显然这是在这里提交的错误

https://code.google.com/p/gmaps-api-issues/issues/detail?id=5114

作为解决方法,您可以部署一个透明层,该层将接收触摸事件而不是MapFragment.

  • @SharpEdge `mapFragment.getView().setClickable(false);` 没有禁用地图触摸响应。讽刺的是,`googleMap.getUiSettings().setAllGesturesEnabled(false); ` 做到了。 (5认同)