2016-09-22 2 views
1

Когда приложение вызывает клавиатуры телефона (при редактировании текста), карта панели преобразования, как показано на рисунке ниже: enter image description here Что может быть причина, я добавили карту, как это:Кордова: Листовка Карта плитки отключить преобразование для отображения панели

map = L.map('main').setView([9.123011560267038, 125.53513369515711], 15); 
    L.tileLayer('./tile/cbr_new_design_tms2/{z}/{x}/{y}.png', { 
     minZoom: 14, 
     maxZoom: 16, 
     tms: true 
    }).addTo(map); 

HTML:

<div class="panel" id="main" style="padding:0;overflow:hidden" data-title="Main"> 
       <header> 
        <h1>Main</h1> 
        <a href="#modal1" class="button big icon question" style="float:right;padding-top:0;outline:0" data-transition="up-reveal"></a> 
        <a href="#modal" class="button big icon settings" style="padding-top:0;outline:0" data-transition="up-reveal"></a> 
       </header> 

      </div> 

Update: Я просто заметил, что когда клавиатура вызова, листовка добавляет class="leaflet-map-pane" style="transform: translate3d(XXpx, XXpx, XXpx);". Это каким-то образом преобразует карту. Итак, как я могу предотвратить распространение листовки?

+1

См https://stackoverflow.com/questions/38509121/leaflet-map-on-android-disrupted-by-appearance-of-keyboard – ghybs

+0

I» м, используя Кордову. –

+0

Вы также можете настроить манифест Android с помощью Cordova. См. Например: https://stackoverflow.com/questions/12833145/how-to-properly-configure-phonegap-for-android-so-it-does-not-zoom-on-text-input/27145959#27145959 и кто-то, кто просто получил «противоположную» проблему как ваш: https://stackoverflow.com/questions/39627268/android-webview-keyboard-covering-up-input – ghybs

ответ

0

Как указал @ghybs, есть варианты конфигурации Cordova, которые имеют высокий шанс решить это.

В противном случае, если вы можете запустить код ome javascript, когда пользователь скрывает клавиатуру, вызовите метод invalidateSize() на экземпляр карты.

+0

Я пробовал ваши и @ghybs предложения, ни один из них не работает. –

0

решаемые это, комментируя leaflet-src.js:

_onResize: function() { 
     L.Util.cancelAnimFrame(this._resizeRequest); 
     this._resizeRequest = L.Util.requestAnimFrame(
       function() { this.invalidateSize({debounceMoveend: true}); }, this, false, this._container); 
    }, 
Смежные вопросы