私はesriのArcGIS javascript APIを使用していますが、私は現在コンパクトバージョンのapiとdojoxを使用して、モバイルフレンドリーなアプリケーション(http://webapps.kent.gov.uk/KCC.MyNearestGIS.Web.Sites.Public/Default.aspx)を作成しています。モバイル。
スクロール可能なペインを使用してアドレス検索の結果を保持したいので、検索ペインをモバイルデバイスの画面に収まる大きさに保つことができますが、ユーザーは結果をスクロールできますRoundRectListが固定パネルのサイズを超えています。
IEまたはChrome(モバイルエミュレータを含む)でスクロールするScrollablePaneを取得できません。マークアップで作成するのかプログラムによって作成するのかにかかわらず、理由を理解できません。なぜなら、dojoの例ツールキット。
私のコードはここにある:https://jsfiddle.net/TimSkinner/ue3ok7v4/dojox/mobile/ScrollablePaneがスクロールしない
function C_CreateLocationResultsGrid(results, resultsHeight){
require(["dojo/dom",
"dojo/query",
"dojo/dom-attr",
"dojo/dom-prop",
"dojo/_base/declare",
"dijit/registry",
"dojox/grid/DataGrid",
"dojox/mobile/ScrollablePane",
"dojox/mobile/RoundRectList",
"dojox/mobile/LongListMixin",
"dojox/mobile/ListItem",
"dojo/on",
"dojo/domReady!"], function (dom, query, domAttr, domProp, declare, registry, DataGrid, ScrollablePane, RoundRectList, LongListMixin, ListItem, on) {
if (registry.byId("uxLocationGrid") != 'undefined' && registry.byId("uxLocationGrid") != null) {
registry.byId("uxLocationGrid").destroy();
}
var uxLocationGrid;
if (registry.byId("uxLocationScrollablePane") != 'undefined' && registry.byId("uxLocationScrollablePane") != null) {
registry.byId("uxLocationScrollablePane").destroy();
}
var uxLocationScrollablePane = new ScrollablePane({
id: 'uxLocationScrollablePane',
//srcNodeRef: dom.byId('uxLocationSearchResultsDiv'),
height: resultsHeight,
allowNestedScrolls: true,
scrollBar: true,
scrollDir: 'v',
scrollType: 0
});
uxLocationGrid = new declare([RoundRectList, LongListMixin])({
id: 'uxLocationGrid',
select: '',
tag: 'ul'
});
if (registry.byId("uxLocationListHeader") != 'undefined' && registry.byId("uxLocationListHeader") != null) {
registry.byId("uxLocationListHeader").destroy();
}
var uxLocationListHeader = new ListItem({
id: 'uxLocationListHeader',
header: true,
label: 'Select a location',
clickable: false
});
uxLocationGrid.addChild(uxLocationListHeader);
var uxLocationListItem;
for (var i = 0; i < results.length; i++) {
var listItemId = "uxLocationListItem" + i.toString();
if (registry.byId(listItemId) != 'undefined' && registry.byId(listItemId) != null) {
registry.byId(listItemId).destroy();
}
uxLocationListItem = new ListItem({
id: listItemId,
label: results[i].RESULT,
variableHeight: true,
anchorLabel: true,
onAnchorLabelClicked: C_OnLocationRowClickHandler,
clickable: true
});
uxLocationGrid.addChild(uxLocationListItem);
}
uxLocationScrollablePane.domNode.appendChild(uxLocationGrid.domNode);
dom.byId("uxLocationSearchResultsDiv").appendChild(uxLocationScrollablePane.domNode);
uxLocationGrid.startup();
uxLocationScrollablePane.startup();
uxLocationScrollablePane.resize();
});
}