Google地图信息窗口阻止点击事件

时间:2013-02-20 02:33:52

标签: android google-maps

我已经实现了一个InfoWindowAdapter来返回这个膨胀的XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/layoutRoot"
    android:clickable="true">

    <TextView
        android:id="@+id/titleText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Medium Text"
        android:textStyle="bold"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/snippetText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

夸大
public class MarkerWindowProvider implements InfoWindowAdapter {
    private LayoutInflater lInflater;
    private InfoWindowClickListener onClick;

    public MarkerWindowProvider(Context parent, InfoWindowClickListener onClick) {
        lInflater = (LayoutInflater) parent.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this.onClick = onClick;
    }

    @Override
    public View getInfoContents(Marker marker) {
        return null;
    }

    @Override
    public View getInfoWindow(final Marker marker) {
        View contents = lInflater.inflate(R.layout.custom_infowindow, null);
        ((TextView)contents.findViewById(R.id.titleText)).setText(marker.getTitle());
        ((TextView)contents.findViewById(R.id.snippetText)).setText(marker.getTitle());
        contents.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                onClick.onClick(marker);
            }
        });
        return contents;
    }

    public interface InfoWindowClickListener {
        public void onClick(Marker marker);
    }
}

显示膨胀的布局而不是股票信息窗口,但无论我选择将XML扩展到哪种方法,OnClick方法都不会触发。

我真的需要这个功能。关于为什么这不起作用的任何想法?任何替代品? 感谢。

1 个答案:

答案 0 :(得分:0)

它说,你不能处理信息窗口内的任何事件。这个弹出窗口不是&#34; live&#34;查看,您甚至无法禁用默认背景选择器(阻止闪烁)。不幸。 因此,不建议将按钮和文本视图用于输入。