Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome Sencha touch selectfield在chrome上运行良好,但在安卓2.1模拟器和安卓2.2手机上运行失败_Google Chrome_Extjs_Touch_Emulation - Fatal编程技术网

Google chrome Sencha touch selectfield在chrome上运行良好,但在安卓2.1模拟器和安卓2.2手机上运行失败

Google chrome Sencha touch selectfield在chrome上运行良好,但在安卓2.1模拟器和安卓2.2手机上运行失败,google-chrome,extjs,touch,emulation,Google Chrome,Extjs,Touch,Emulation,我正在学习Sencha Touch。我有一个奇怪的问题。使用选择字段的视图并没有在Android emulator上显示,但在Google Chrome上显示。它以前工作得很好,我猜不出是什么改变了它 在emulator logcat中,我可以看到以下三条消息: E/ActivityThread(243):未能找到android.server.checkin的提供商信息 签入(243):无法更新统计浏览器\u快照\u中心:java.lang.IllegalArgumentException:未知

我正在学习Sencha Touch。我有一个奇怪的问题。使用选择字段的视图并没有在Android emulator上显示,但在Google Chrome上显示。它以前工作得很好,我猜不出是什么改变了它

在emulator logcat中,我可以看到以下三条消息:

E/ActivityThread(243):未能找到android.server.checkin的提供商信息

签入(243):无法更新统计浏览器\u快照\u中心:java.lang.IllegalArgumentException:未知URLcontent://android.server.checkin/stats

D/CordovaLog(243):未定义:第1行:TypeError:表达式“c”[null]的结果不是构造函数

有时只显示第三个。 以下是视图代码:

(函数(){
var setSettingValue=函数(组件、查询、值){
var c=组件.query(查询);
如果(c&&值&&(c.长度>0)){
c[0]。设置值(值);
}
};
var createToolbar=函数(){
返回Ext.create('Ext.Toolbar'{
xtype:'工具栏',
停靠:“底部”,
布局:{pack:'center'},
项目:[
{ 
iconMask:true,ui:'normal',iconCls:'info',
itemId:“信息按钮”
},
{xtype:'间隔'},
{ 
iconMask:true,ui:'normal',iconCls:'reply',
itemId:“backButton”
}
]
})};
Ext.define('MyWF.view.Settings'{
扩展:“Ext.Container”,
初始化:函数()
{
this.setItems([createToolbar()]);
这是callParent();
},
配置:{
布局:“vbox”,
填充:“0 10”,
可滚动:{
方向:“垂直”
},
onBackAction:function(){console.log('back');},
onInfo操作:函数(){console.log('info');},
听众:[{
代表:“后退按钮”,
事件:“点击”,
fn:“反作用”
},
{
代表:“#信息按钮”,
事件:“点击”,
fn:“OnInfo行动”
},
{
事件:“秀”,
fn:功能(组件、EOPT){
设置设置值(组件,'selectfield[name=windMU]','kmh');
设置设置值(组件,'selectfield[name=temperatureMU],'C');
}
}],
项目:[{
xtype:“字段集”,
标题:“度量单位”,
项目:[{
xtype:'selectfield',
名称:'temperatureMU',
标签:“温度”,
labelAlign:“顶部”,
听众:{
更改:功能(选择字段、新数据、旧数据、eOpts){
警报('您的选择是:'+新数据);
}
},
选项:[{
文本:“摄氏度”,
值:“C”
}, {
文字:“法伦海特”,
值:“F”
},]
}, {
xtype:'selectfield',
名称:“windMU”,
标签:“风速”,
labelAlign:“顶部”,
听众:{
更改:功能(选择字段、新数据、旧数据、eOpts){
警报('您的选择是:'+新数据);
}
},
选项:[{
文字:“每小时公里数”,
值:“km/h”
}, {
文本:“米/秒”,
值:“m/s”
}, {
文字:“每小时英里数”,
值:“MPH”
}, {
文本:“结”,
值:“kn”
}]
}]
},]
}
});
})();

谢谢你的建议。我有时间来解决这个问题。 首先,我在问题中添加了一个缺少的信息:我使用Sencha Touch库的定制版本运行应用程序,库版本是2.0.1.1

在Google Chrome上,选择字段(Ext.field.select)默认为choiches列表创建一个Ext.dataview.List实例,而在手机上创建一个Ext.picker.picker实例

但是Ext.picker.picker还创建了一个Ext.TitleBar,这在我定制的sencha库构建中是缺少的,而Ext.dataview.List类则在其中

因此,应用程序可以在Chrome中显示select字段,但不能在emulator中显示,并且它给出了不清楚的消息,因为库构建是压缩和模糊的

有两种解决方案:

  • 您也可以在模拟器或手机中强制使用列表。Ext.picker.picker类有一个创建选项:“usePicker:false”,默认设置为“auto”

  • 或者,最好在应用程序文件中添加对标题栏组件的显式引用:“Ext.require('Ext.TitleBar');”以将其包含在库构建中

  • 通过设置选择器配置“usePicker:true”,并使用调试库构建“sencha touch debug.js”运行应用程序,我看到了在Chrome中强制使用选择器的问题,请参阅,和

    然后在Chrome控制台以及Android emulator logcat中,我看到了清晰的信息:

    [WARN][Anonymous] [Ext.Loader] Synchronously loading 'Ext.TitleBar'; 
    consider adding 'Ext.TitleBar' explicitly as a require of the corresponding class 
    

    建议:在logcat中,最好过滤许多消息,例如在过滤器掩码中写入“Ext.Loader”。

    我有时间解决这个问题。 首先,我添加了一个缺少的信息