私はsenchatouchにまったく慣れていません。目標は、4つのタブを含むTabPanelを持つアプリを作成することです。そのうちの1つはマップである必要があります(他はNestedListと2つのパネルがチャームのように機能します)。私はマップカードを次のように作成しようとしました
NPApp.views.Mapcard = Ext.extend(Ext.Map, { ...
一部のビューが重なっていて、マップが表示されていないなど、非常に奇妙な結果が得られました。
2番目の試みは、パネルを作成し、それをTabPanelに埋め込んで、マップをパネルに追加することでした。ここで、次のエラーが発生します。
Uncaught TypeError:未定義のプロパティ'ROADMAP'を読み取ることができません。sencha-touch-debug.js:24840
Google Map API V3で述べたように、mapTypeをgoogle.map.MapTypeIDに変更しようとしましたが、成功しませんでした。
私はそれにこだわることができません、あなたが私にいくつかのヒントを与えることができることを願っています!
アプリ:
NPApp = new Ext.Application({
name: "NPApp",
title: "NextPuff",
icon: 'images/icon.png',
tabletStartupScreen: 'images/index_default.jpg',
phoneStartupScreen: 'images/index_default.jpg',
launch: function() {
this.views.viewport = new this.views.Viewport();
this.views.homecard = this.views.viewport.getComponent('navi');
}
});
ビューポート:
NPApp.views.Viewport = Ext.extend(Ext.TabPanel, {
fullscreen: true,
store: NPApp.npstore,
initComponent: function() {
Ext.apply(this, {
tabBar: {
dock: 'bottom',
layout: {
pack: 'center'
}
},
items: [
{ xtype: 'homecard', stretch: true},
{ xtype: 'searchcard', id: 'navi' },
{ xtype: 'mapcard' },
{ xtype: 'morecard' }
]
});
NPApp.views.Viewport.superclass.initComponent.apply(this, arguments);
}
});
マップカード:
NPApp.views.Mapcard = Ext.extend(Ext.Panel, {
title: "Map",
iconCls: "map",
initComponent: function() {
var npMap = new Ext.Map({
title: 'Map',
useCurrentLocation: true,
listeners: {
centerchange : function(comp, map){
// refreshMap(map);
}
},
mapOptions : {
mapTypeControl : false,
navigationControl : false,
streetViewControl : false,
backgroundColor: 'transparent',
disableDoubleClickZoom: true,
zoom: 17,
draggable: false,
keyboardShortcuts: false,
scrollwheel: false
}
});
Ext.apply(this, {
defaults: {
styleHtmlContent: true
},
items: [npMap]
});
NPApp.views.Homecard.superclass.initComponent.apply(this, arguments);
}
});
Ext.reg('mapcard', NPApp.views.Mapcard);
煎茶1.1.0; Google JavaScript Maps API V3; Safari 5.1