我的位置按钮事件监听器

Posted

技术标签:

【中文标题】我的位置按钮事件监听器【英文标题】:My location button event listener 【发布时间】:2013-01-24 12:52:38 【问题描述】:

我启用了 Google Maps android API v2 的我的位置层,它添加了浮动按钮以转到用户的当前位置。我需要一种方法来检测对这个按钮的点击。这可能吗?

【问题讨论】:

【参考方案1】:

自发布此问题以来,Google 已更新 API。他们添加了一个onMyLocationButtonClick() 监听器。

添加监听器:

//add location button click listener
map.setOnMyLocationButtonClickListener(new GoogleMap.OnMyLocationButtonClickListener()
    @Override
    public boolean onMyLocationButtonClick()
    
        //TODO: Any custom actions
        return false;
    
);

返回 false 本质上会调用 super 方法。返回 true 不会。

【讨论】:

【参考方案2】:

8月最新发布的谷歌地图android api V2包含一个监听我的位置按钮点击的方法:onMyLocationButtonClick ()这可以用来知道用户什么时候点击了按钮并返回如果侦听器已消费该事件,则为 true

【讨论】:

【参考方案3】:

不,目前无法获取该信息。为此提出了一项功能请求,并且已得到 Google 的确认。

如果您想更快地解决问题,请加注星标:

http://code.google.com/p/gmaps-api-issues/issues/detail?id=4789&q=apitype%3DAndroid2&colspec=ID%20Type%20Status%20Introduced%20Fixed%20Summary%20Stars%20ApiType%20Internal


解决方法:

禁用内置控件并创建自己的视图并将其添加到屏幕。为这个按钮设置一个 onClickListener 并将地图动画到地图的位置。

禁用默认控件:

UiSettings.setMyLocationButtonEnabled(false)

从地图上获取我的位置:

GoogleMap.getMyLocation()

【讨论】:

这不再是真的,Android 已经更新了。请参阅下面托尼或我的答案。【参考方案4】:

很高兴知道这一点,因为我也对此感到疑惑。现在,有没有办法知道谷歌的位置服务是否已启用,以便我们决定是否要启用该按钮?拥有一个不执行任何操作的按钮是没有意义的,因此解决方法(始终禁用该按钮)似乎是目前唯一的选择。

【讨论】:

以上是关于我的位置按钮事件监听器的主要内容,如果未能解决你的问题,请参考以下文章

按钮监听事件

时间线、事件监听器、清理

监听蓝牙外设按钮事件 iOS Swift

cloneNode 不会丢失事件监听器

RecyclerView滑动监听

如何删除某些元素的所有事件侦听器而不使用其子元素