将布局放在谷歌地图标记Android上方

时间:2015-08-12 14:09:33

标签: android google-maps marker

我有一个标记的自定义“InfoWindow”,它有按钮,但是对于默认用户,不能点击按钮或在该布局的列表上滑动,因为该信息窗口就像一个图像。

注意:https://stackoverflow.com/a/15040761/2183804中的解决方案不适用于我的问题,因为不同的标记具有不同的信息Windows(我已经尝试修改该答案但没有成功)。

所以,为了解决我的问题,我想在用户点击标记时将布局放在标记上方。如何将布局放在标记上方?

Example

在这个例子中,我有一个列表,其中包含布局中的可点击项目

2 个答案:

答案 0 :(得分:0)

我通过添加自定义信息窗口适配器实现了这一目标。然后将其设置为我的地图。在适配器的getInfoWindow()中,您可以将所有点击侦听器写入您的视图。这是代码。

    private class CustomInfoWindowAdapter implements GoogleMap.InfoWindowAdapter {


        private View view;

        public CustomInfoWindowAdapter() {

            view = getLayoutInflater().inflate(R.layout.custom_info_window, null);
        }

        @Override
        public View getInfoContents(Marker marker) {

            if (marker != null
                    && marker.isInfoWindowShown()) {
                marker.hideInfoWindow();
                marker.showInfoWindow();
            }
            return null;
        }

        @Override
        public View getInfoWindow(final Marker marker) {

            final ImageView image = ((ImageView) view.findViewById(R.id.badge));

            final String title = marker.getTitle();
            final TextView titleUi = ((TextView) view.findViewById(R.id.title));
            if (title != null) {
                titleUi.setText(title);
            } else {
                titleUi.setText("");
            }


            return view;
        }

    }

并将其设置为通过此

进行映射
 private GoogleMap mMap;
mMap.setInfoWindowAdapter(new CustomInfoWindowAdapter());

希望它有所帮助。快乐的编码...

答案 1 :(得分:0)

可以在此链接上找到解决方案:https://stackoverflow.com/a/31995000/3957303

基本思想是使用app.filter('unsafe', function($sce) { return function(val) { return $sce.trustAsHtml(val); }; }); 在屏幕上显示布局,然后使用其位置进行播放,使用答案中描述的PopupWindow方法将其放置在标记上。每次相机更改(聆听updatePopup)时,都会调用CameraChangeListener方法。