Sencha Touch 2의 탭 변경 사이에 탭 패널에로드 마스크를 표시하려면 어떻게해야합니까?Sencha Touch 2 - TabPanel 항목의 Ext.LoadMask 변경
탭 버튼을 눌렀을 때 로딩 마스크를 표시하고 패널이 올바르게 표시되는 즉시 숨기려고합니다.
Ext.define("MyProject.view.Main", {
extend: 'Ext.tab.Panel',
requires: [
'Ext.TitleBar','Ext.MessageBox'
],
config: {
fullscreen: true,
tabBarPosition: 'bottom',
layout: {
type: 'card',
animation: 'fade' //false, fade, flip, pop, scroll, slide
},
items: [
{
xtype: 'panel1',
masked: {
xtype:'loadmask',
message:'Chargement...'
},
listeners: {
painted: function(container, value, oldValue, eOpts) {
//Ext.Msg.alert('Test', 'painted');
this.setMasked(false);
}
}
},
{
xtype: 'panel2',
masked: {
xtype:'loadmask',
message:'Chargement...'
},
listeners: {
painted: function(container, value, oldValue, eOpts) {
//Ext.Msg.alert('Test', 'painted');
this.setMasked(false);
}
}
},
문제는 이벤트가 트래핑되지만 문제는 하위 항목 생성시 마스크를 표시하기 때문에 마스크가 표시되지 않습니다. onActiveItemChanged와 같은 이벤트가 필요하지만 BEFORE 후에 AFTER가 발생합니다. 누구든지 어떻게 구현할 수 있을지에 대한 아이디어가 있습니까?
업데이트 : 나는 거의 Sencha Touch 포럼에서 발견 된 코드를 추가하여 만들었습니다. 내가 탭 판넬에 추가하는 각 항목에 대해 다음
listeners: {
delegate : 'tabbar > tab',
tap : function() {
Ext.Viewport.setMasked({ xtype: 'loadmask', message: 'Loading...', indicator:true});
}
}
그리고 : 기본보기 (탭 패널) 수준에서 추가
xtype: 'panel1',
listeners: {
painted: function(container, value, oldValue, eOpts) {
Ext.Viewport.setMask('false');
}
}
그러나 문제는 지금 그 I는 기본 "탭을 무시하기 때문에 "이벤트 리스너는 버튼을 클릭하더라도 항상 같은 탭에 머물러 있으며 다른 탭을 표시하지 않습니다. 그러나 새 탭의 페인트 이벤트가 시작됩니다.
나는 3 개의 탭이있다 : 1 개는 12 개의 사진과 다른 패널을 포함하는 회전 목마, 다른 하나는 달력, 다른 하나는 HTML 콘텐츠이다. 하나에서 다른 것으로 전환하는 데 1 ~ 2 초가 걸릴 수 있습니다. 이것이 바로 사용자가 버튼을 클릭 할 때 최대한 빨리로드 마스크를 실행하고 싶기 때문입니다. new 요소가 나타난 후에 activeitemchange가 실행됩니다. 내 경우에는 기본적으로 쓸모가 없다. –