0

在这篇文章中提出了同样的问题,但接受的答案没有帮助(至少我)。

我使用 dojox.mobile.View 来显示两个看起来像这样的视图。一切正常,除了地图容器没有正确显示。它在首页显示为一个小框。我错过了布局文件上的某些内容吗?谢谢!

<div id="view1" dojoType="dojox.mobile.View" selected="true">
    <h1 dojoType="dojox.mobile.Heading">View 1</h1>
    <ul dojoType="dojox.mobile.RoundRectList">
        <li dojoType="dojox.mobile.ListItem" icon="images/icon1.png" moveTo="view2" transition="slide">Go To View 2
        </li>
    </ul>
</div>

<div id="view2" dojoType="dojox.mobile.View" style="height:100%">
    <h1 dojoType="dojox.mobile.Heading" back="View 1" moveTo="view1">View 2</h1>
    <div dojoType="dojox.mobile.RoundRect" id="map_canvas" style="width:100% !important;height:100% !important;"></div>
</div>

更新:

<body style="visibility: visible;">
<div id="view1" class="mblView" selected="true" style="visibility: visible; width: 100%; height: 100%; top: 0px; left: 0px; display: none;" dojotype="dojox.mobile.View" widgetid="view1">
<div id="view2" class="mblView" style="visibility: visible; width: 100%; height: 100%; top: 0px; position: relative; left: 0px;" dojotype="dojox.mobile.View" widgetid="view2">
    <h1 id="dojox_mobile_Heading_1" class="mblHeading mblHeadingCenterTitle" moveto="view1" back="View 1" dojotype="dojox.mobile.Heading" style="" widgetid="dojox_mobile_Heading_1">
    <div id="map_canvas" class="mblRoundRect" style="width: 100% ! important; height: 100% ! important; position: relative; background-color: rgb(229, 227, 223); overflow: hidden;" dojotype="dojox.mobile.RoundRect" widgetid="map_canvas">
        <div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;">

萤火虫日志

4

2 回答 2

1

Dojo mobile + Google maps api version 3 有类似的显示问题。

西蒙斯的解决方案不起作用,但还有另一种方法。

我不创建新主题,只是给你这个简单的提示:总是检查谷歌地图是否在 DOM 之后加载(例如使用require(["dojo/domReady!"], function(){ ... })

于 2012-10-19T11:56:39.437 回答
0

您用于地图视图的移动视图仅设置了高度:100%,例如,宽度 + 高度为 100%。

这可能会导致用于地图的 div 内部出现问题,因为它没有正确拾取宽度。(我以前见过类似的问题,但可能是别的)

编辑:

什么都没有出现在我身上。您是否尝试过使用脚本来修改它?就像是:

var div = dojo.byId("map_canvas");
div.style.height = window.innerHeight+"px";
div.style.width = window.innerWidth+"px";
于 2012-05-15T10:26:36.667 回答