Всегда показывайте элементы управления масштабированием на MapView
-
06-09-2019 - |
Вопрос
Есть ли способ всегда показывать элементы управления масштабированием в MapView?Я добавил элементы управления масштабированием, используя
map=(MapView)findViewById(R.id.map);
map.setBuiltInZoomControls(true);
но элементы управления масштабированием то появляются, то исчезают.Я хочу, чтобы они всегда были видны.
Решение
Решил это, поместив мои собственные ZoomControls в мой макет xml:
<ZoomControls android:id="@+id/zoomcontrols"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
а затем настраиваем onClickListeners, чтобы затем обрабатывать масштабирование:
zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);
zoomControls.setOnZoomInClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mapController.zoomIn();
}
});
zoomControls.setOnZoomOutClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mapController.zoomOut();
}
});
Другие советы
Решение Complications действительно работает, но вы теряете встроенную функциональность, при которой кнопка отключается, когда вы полностью увеличиваете или уменьшаете масштаб.Вы можете сохранить эту функциональность, используя вместо этого следующее:
localMapView.getZoomButtonsController().setAutoDismissed(false);
Однако это не позволяет вам размещать элементы управления там, где вы хотите, на панели, и хотя это никуда не исчезает, оно не отображается в первый раз, пока пользователь не коснется экрана один раз.Я пытался дозвониться setVisible(true)
на контроллере, но, похоже, это по какой-то причине не работает.