Android上的地图框罗盘监听器

时间:2018-04-27 03:18:26

标签: android mapbox

是否可以在地图框中单击指南针时进行注册?我看到MapboxMap.OnCompassAnimationListener它是一个界面但是当我实现它时它不起作用(Android) 感谢

2 个答案:

答案 0 :(得分:0)

你可以拦截点击(我使用com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.13.0):

CompassView compassView = findViewById(R.id.compassView);
compassView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Log.d(TAG, "Compass clicked");
    }
});

但在此之后你必须自己完成覆盖的onClick逻辑。

答案 1 :(得分:0)

“检查”点击的最佳方法是使用触摸侦听器,如果您覆盖onClickListener,则指南针中的功能将不起作用(动画等)。 我找到了方法。 (您可以添加额外的步骤event.getAction == MotionEvent.ACTION_DOWN)

 mapView.findViewWithTag<View>("compassView")?.setOnTouchListener { v, event ->
                Toast.makeText(context, "touch listener", Toast.LENGTH_SHORT).show()
                false
            }

这将起作用,但是如果您更新Mapbox,请确保compassView不变