【问题标题】:Using a non clickable MapView使用不可点击的 MapView
【发布时间】:2018-12-31 04:19:12
【问题描述】:

为了我的应用程序的需要,我需要一个 Mapview 应该像 ImageView 一样工作。

没有默认行为的小地图(用户不允许移动它),我需要在点击它时启动谷歌地图。

我尝试过使用这样的代码:

mapView.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)"));
        startActivity(intent);
    }
});

但似乎从未调用过 OnClickListener,我还没有找到如何禁用地图视图滚动。

感谢您的帮助。

编辑: 我已经尝试使用 clickable=false,这是一件好事,因为地图现在已“禁用”并且用户无法移动它,但我无法在单击时启动 GMaps...

【问题讨论】:

标签: android click android-mapview


【解决方案1】:

当您设置clickable(false) 时,您不能使用onClick,当您设置clickable(true) 时,onTouch 将成为焦点。因此,覆盖onTouch,然后检查其中的地图视图是否不可点击,如果不可点击 => 启动活动。

【讨论】:

  • 是的,我刚刚看到你的问题并想到了这个。也许有更好的选择。
【解决方案2】:

要启动 Google 地图,请使用 onTouchListener,因为单击地图视图时永远不会调用 onClickListenere。我试过这样:

mapView.setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
            Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
            startActivity(intent);
            return false;
        }
    });

其中 NextActivity 是另一个扩展 MapActivity 的活动。

【讨论】:

  • 非常感谢,但同样的答案,Carnal 太快了
  • :-) 是的,我正处于学习阶段,所以在给出答案之前有点犹豫。
【解决方案3】:

你需要在mapView准备好后设置onClick监听器

mapView?.getMapAsync {googlemap->

     googlemap. setOnMapClickListener(object : GoogleMap.OnMapClickListener {
         override fun onMapClick(p0: LatLng?) {
            //...
         }

})

【讨论】:

    【解决方案4】:

    在你的xml文件中制作android:clickable="false"可以帮助你

    【讨论】:

    • 它可以工作,但是当用户点击地图之后我无法启动谷歌地图..
    • 您可以在点击监听器上将地图中的可点击设置为 false
    • 如问题中所述,在两种情况下都不会调用 OnClickListener,可点击设置为 true 或 false
    • @Waza_Be 其他解决方案是将 map click 设置为 false 并在顶部放置一个空的透明视图并使其可点击。
    • 在 XML 中设置时不起作用。必须以编程方式进行,它 mapView.setClickable(false); mapView.setLongClickable(false);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2014-08-30
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多