Android 谷歌地图监听器不断被调用

如何解决Android 谷歌地图监听器不断被调用

我已将谷歌地图集成到我的应用程序中。

不断调用 onCameraIdle() 和 onCameraIdle() 函数的侦听器方法如何阻止?

下面是我的片段代码

    class AddAddressFragment : Fragment(),View.OnClickListener,OnMapReadyCallback,GoogleMap.OnCameraIdleListener,GoogleMap.OnCameraMoveListener {
    
    private var mGoogleMap: GoogleMap? = null
    
    override fun onViewCreated(view: View,savedInstanceState: Bundle?) {
            super.onViewCreated(view,savedInstanceState)
    mapView?.getMapAsync(this)
    }

  override fun onMapReady(p0: GoogleMap?) {
        mGoogleMap = p0
        with(mGoogleMap) {
            this?.setonCameraMoveListener(this@AddAddressFragment)
            this?.setonCameraIdleListener(this@AddAddressFragment)
        }
    }
}

以下是 onCameraIdle 和 onCameraMove 函数中打印的日志:

override fun onCameraIdle() {
Log.d("CameraIdle","Camera Idle called)
}

override fun onCameraMove() {
        Log.d("TAG","Camera moved")
      
    }

onCameraIdle 和 onCameraMoved 都被连续调用,如何停止?

解决方法

检查this

  @Override
    public void onMapReady(GoogleMap googleMap) {
        map = googleMap;

        map.setOnCameraIdleListener(this);
        map.setOnCameraMoveStartedListener(this);
        map.setOnCameraMoveListener(this);
        map.setOnCameraMoveCanceledListener(this);
        // We will provide our own zoom controls.
        map.getUiSettings().setZoomControlsEnabled(false);
        map.getUiSettings().setMyLocationButtonEnabled(true);

        // Show Sydney
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-33.87365,151.20689),10));
    }

调用 GoogleMap.stopAnimation(),调用 onCameraMoveCancelled。但是为此您需要通过 map.setOnCameraMoveCanceledListener(this)

注册一个监听器

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?