Всегда показывайте элементы управления масштабированием на MapView

StackOverflow https://stackoverflow.com/questions/920741

  •  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) на контроллере, но, похоже, это по какой-то причине не работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top