标记创建时显示标题和摘要

时间:2013-07-30 12:34:32

标签: android google-maps

我希望使用可编辑的标题和代码段为googleMap添加标记。当用户长时间点击地图时标记应该出现,然后标记应显示为“点击编辑”之类的标题。

代码全部启动并运行,但我无法弄清楚如何在创建标记时显示标题。我只能在随后点击标记时显示它。我无法在MarkerOptions中看到允许我这样做的任何内容。我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

您要查找的选项不在MarkerOptions中,它是Marker本身的函数。 Here's a link to the related docs

marker.showInfoWindow();

要调用此方法,您需要拥有标记或对其的引用。如果你在创作时这样做,那应该很容易。否则只需将您的制造商存储在某个集合中 - 例如HashMap,以便于查找 - 您可以随时显示信息窗口。

答案 1 :(得分:0)

如果您想以自己的方式显示标记的标题和代码段,可以在onMapReadyCallback中进行设置。

@Override
public void onMapReady(GoogleMap googleMap) {
    mGoogleMap = googleMap;

    mGoogleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
        @Override
        public View getInfoWindow(Marker marker) {
            return null;
        }

        @Override
        public View getInfoContents(Marker marker) {
            View view = getLayoutInflater().inflate(R.layout.marker_info, null);

            TextView textViewTitle = (TextView) view.findViewById(R.id.marker_title);
            textViewTitle.setText(marker.getTitle());

            TextView textViewSnippet = (TextView) view.findViewById(R.id.marker_snippet);
            textViewSnippet.setText(marker.getSnippet());

            return view;
        }
    });

这是我的布局文件。
marker_info.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">

    <TextView
        android:id="@+id/marker_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:gravity="center"/>

    <TextView
        android:id="@+id/marker_snippet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"/>

</LinearLayout>