我在Android上使用自定义InfoWindowsAdapter for GoogleMap。我的问题是,我无法在该自定义信息窗口上附加onLongClickListener。 GoogleMap类只有OnClickListener,但API中缺少OnLongClickListener。
我尝试在自定义视图上附加OnLongClickListener,但不会调用此侦听器。
private class EventInfoWindowAdapter implements InfoWindowAdapter {
public View getInfoWindow(Marker marker) {
//mWindow is clicable (I do set it in layout XML)
mWindow = getLayoutInflater().inflate(R.layout.event_info_window, null);
mWindow.setOnLongClickListener(new LinearLayout.OnLongClickListener() {
@Override
public boolean onLongClick(View view) { //THIS ONE IS NOT CALLED
Log.d("LONG", "CLICKED");
contextMode = startActionMode(actionModeCallback);
return true;
}
});
return mWindow;
}
}
//in onCreate(...) method
mMap = ((MapView) findViewById(R.id.map)).getMap();
mMap.setInfoWindowAdapter(new EventInfoWindowAdapter());
有关如何使其有效的任何建议吗?
答案 0 :(得分:3)
监听器将无法工作,因为您作为InfoWindow叠加层显示的内容不是视图 - 它是视图的快照,几乎是大多数方法和目的的图片。我有类似的麻烦,所以这些答案可能对你有帮助:
Adding a button to a custom InfoWindowAdapter view that can register clicks