2016-07-21 7 views
0

, скажем, у меня есть следующий переключатель. http://docs.sencha.com/touch/2.4/2.4.2-apidocs/#!/api/Ext.field.Toggleломать касание событие

Вы можете переключаться, нажимая или прокручивая. , если вы не позволяете экрану продолжать салфетки и продолжайте прокручивать пальцем влево-вправо, . Переключатель продолжает двигаться пальцем. Есть ли способ «разбить» событие касания? Желаемое поведение - это прокручивание, тогда, если я продолжаю прокручивать, ничего не происходит, например, контакт между пальцем и экраном был утерян.

Что я сделал: Я могу сделать это в области тумблера - если я отключу его на «смене» и включи его на «коснуться». Нехорошо, потому что я хочу сделать это для всех переключений на экране, пока он замаскирован, например, и большинство из них, очевидно, не тронуты, поэтому не получите коснуться и не будут включены.

ответ

0

Почему бы вам не добавить переключитесь на массив на touchstart (прикоснитесь к удалению его из массива). При маскировке вы запускаете событие в представлении, которое проходит через все элементы внутри массива и «ломает» событие касания.

Контроллер:

config: { 
    refs: { 
     view: '#my-view' 
     toggles: '.togglefield' 
    }, 
    control: { 
     view: { maskstart: 'hereIBreakTouch'} 
     toggles: {touchstart: 'hereIAddToggleToArray' 
        touchend: 'hereIRemoveToggleFromArray'} 
    } 
}, 
activeToggles: [] 

hereIBreakTouch: function() { 
    // might want to loop 
    var oActiveToggle = this.activeToggles[0]; 
    oActiveToggle.setEnabled(false); 
    //oActiveToggel.fireEvent('touchend'); 
    Ext.defer(function() {oActiveToggle.setEnabled(true);}, 50, this); 
} 

Это должно решить проблему.

+0

большой! кроме вопроса, как сделать BREAK на ощупь, и 'hereIBreakTouch' не является функцией :) –

+0

Я добавил функцию. Я думал, что вы хотели сделать это сами :) Я не тестировал это, пожалуйста, дайте мне знать, если это сработает. – Dinkheller

+0

Нарушение касания означает эмулировать, как и поднимать палец с экрана, так что у вас больше не может переключаться с пальцем. Что вы сделали, просто срабатывает событие, и у вас все еще можно держать swiping влево/вправо, если вы не перестали касаться экрана –

Смежные вопросы