Cordova:Leaflet Map Tiles禁用转换为地图窗格

时间:2016-09-22 02:29:56

标签: android cordova leaflet

当应用程序调用手机键盘时(编辑文本时),地图窗格会变换,如下图所示: 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>

更新:我刚注意到,当调用键盘时,传单会添加class="leaflet-map-pane" style="transform: translate3d(XXpx, XXpx, XXpx);"。它以某种方式转换地图窗格。那么,我如何防止传单转换呢?

2 个答案:

答案 0 :(得分:0)

正如@ghybs指出的那样,Cordova配置选项很有可能解决这个问题。

否则,如果您在用户隐藏键盘时可以运行ome javascript代码,请在地图实例上调用invalidateSize()方法。

答案 1 :(得分: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);
    },