コンテキスト アクションバー メニューの表示を、Google Maps API v2 の情報ウィンドウと同期させたいと考えています。私が抱えている主な問題は、情報ウィンドウの状態を確実に監視する方法がないように見え、2 つの UI 部分が簡単に同期しなくなることです。
これはおおよそ私がこれまでに持っているものです:
private ActionMode mActionMode;
private ActionMode.Callback mActionModeCallback
= new ActionMode.Callback() { ... };
public boolean onMarkerClick(Marker marker) {
if (mActionMode != null) {
// This case should occur if the user taps an already selected marker.
mActionMode.finish();
return false;
}
// Start the contextual actionbar using the ActionMode.Callback defined above
mActionMode = this.startActionMode(mActionModeCallback);
return false;
}
public void onMapClick(LatLng point) {
// Clicking the map normally only closes any info windows.
// We must close the contextual action bar menu as well.
if (mActionMode != null)
mActionMode.finish();
}
主な問題は、情報ウィンドウが表示されonMarkerClick
てonMapClick
いるときにマーカー自体がクリックされたときに呼び出されないようです。ただし、この操作は情報ウィンドウを閉じるのに十分です...
情報ウィンドウの状態を追跡するより信頼性の高い方法、または欠落しているクリック イベントを監視する方法を誰かが持っている場合は、喜んでお知らせします。