bar*_*ney 2 extjs picker ios cordova
我的应用程序已接近完成,但有一个错误,我必须在发布前进行排序.该应用程序使用Cordova 3.4和Sencha为iOS和Android构建一个"原生"应用程序(该bug仅与iOS有关)
基本上,当更改选择器值时,除非用户在单击"完成"方面的速度足够快,否则它将恢复为之前的值 - 难以解释!这是一个显示行动中的错误的视频.
如前所述,这只是iOS上的问题(Android很好).值得注意的是,当应用程序中的其他选择器中有两个值选项时,此错误不存在.例如,时间(小时和分钟)和日期(日和月)的选择器没有此错误 - 只有单个值选择器有问题.
有任何想法吗?
小智 5
我只需要在我们的产品中解决这个问题,当你只有一个Windows桌面时,iPhone上的男孩调试是一个正确的痛苦!
基本上似乎正在发生的事情是当插槽的选择发生变化时,内部的selectedIndex属性正在被更新,但是_value不是 - 而且它似乎是正在被咨询的_value.
我创建了一个新的插槽类,如下所示,它会覆盖doItemTap以确保适当地设置值(me._value = me.getValue(true);):
Ext.define('Ext.ux.FixedSlot', {
extend: 'Ext.picker.Slot',
xtype : 'fixedslot',
doItemTap: function(list, index, item, e, event) {
var me = this;
me.selectedIndex = index;
me.selectedNode = item;
me._value = me.getValue(true);
me.scrollToItem(item, true);
}
});
Run Code Online (Sandbox Code Playgroud)
然后在我的选择器定义配置(我们有一个类定义为field.Select的子类),我指示它使用我的新插槽类型(defaultType: 'fixedslot'):
Ext.define('Ext.ux.MyFixedPicker', {
extend: 'Ext.field.Select',
config : {
defaultPhonePickerConfig : { defaultType: 'fixedslot' }
}
});
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助你避免过去六个小时的一些痛苦!我仍然无法准确解释为什么/在Sencha Touch源中的哪个地方很重要,但现在它似乎可以解决问题并满足我们的包装截止日期!
| 归档时间: |
|
| 查看次数: |
818 次 |
| 最近记录: |