編集可能なタイトルとスニペットを使用して、googleMap にマーカーを追加したいと考えています。ユーザーが地図を長押しするとマーカーが表示され、「クリックして編集」などのタイトルを示すマーカーが表示されます。
マーカーが作成された瞬間にタイトルを表示する方法がわからないことを除いて、コードはすべて稼働しています。後でマーカーをクリックしたときにのみ表示できます。これを可能にする MarkerOptions 内には何も表示されません。私は何か見落としてますか?
編集可能なタイトルとスニペットを使用して、googleMap にマーカーを追加したいと考えています。ユーザーが地図を長押しするとマーカーが表示され、「クリックして編集」などのタイトルを示すマーカーが表示されます。
マーカーが作成された瞬間にタイトルを表示する方法がわからないことを除いて、コードはすべて稼働しています。後でマーカーをクリックしたときにのみ表示できます。これを可能にする MarkerOptions 内には何も表示されません。私は何か見落としてますか?
あなたが探しているオプションMarkerOptions
は、それ自体の機能ですMarker
。関連ドキュメントへのリンクはこちら
marker.showInfoWindow();
このメソッドを呼び出すには、マーカーまたはその参照が必要です。作成時にこれを行っている場合は、簡単なはずです。それ以外の場合は、作成者を特定のコレクションに保存して (HashMap
見つけやすいように)、いつでも情報ウィンドウを表示できます。
マーカーのタイトルとスニペットを独自の方法で表示したい場合は、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>