Noi împărtăși experiențe, așa cum vom merge în jurul valorii de limitările platformei mobile.
Această publicație - al doilea dintr-o serie de articole despre crearea unui simplu aplicații de comerț mobile - Container (Google Play și App Store). Ce este containerul, așa că de ce este numit și modul în care ne-am luptat cu un antet dublu, ni se spune în primul articol:
În cazul 1C este imposibil de a prinde un tapa lung. Această dorință a sunat la Forumul pentru parteneri, dar dezvoltatorii platforma nu intenționează să-l vândă, pentru că robinet lung nu este acceptat pentru a utiliza pe iOS.

De fapt, există un robinet lungă în platforma mobilă. Dacă pur și simplu faceți clic pe linie, apoi imediat apare la deschiderea sa, dar dacă apăsați și mențineți - linia este evidențiată în albastru, și nu se întâmplă nimic. Acest lucru se face astfel încât utilizatorul poate selecta linia de acțiune - de exemplu, pentru a muta sau șterge. Problema este că dezvoltatorul nu poate trece peste acest comportament, și, de exemplu, pentru a arăta utilizatorului un meniu contextual cu opțiuni de acțiune.
Nu se poate? Oh, Sho spui!
După cum se știe, în convențional apăsând rând declansate Selectarea evenimentului, și este deschis linia. În cazul în care șirul doar pentru a sublinia munca evenimentului PriAktivizatsiiYacheyki. S-ar părea - ceea ce împiedică să pună codul nostru în acest caz? Nu este atât de simplu - nu funcționează numai în alocarea, dar atunci când este apăsat. Când facem clic pe un rând - acesta reprezintă un moment (acest lucru poate fi văzut cu ochiul liber), și apoi se deschide.
Deci, ce avem? În tapas lungi îndeplinește doar PriAktivizatsiiYacheyki, cu scurt - PriAktivizatsiiYacheyki și selectați. Concluzia este clar - dacă ați lucrat ambele evenimente - deci este o alegere, cu excepția cazului în declanșat activarea - înseamnă un robinet lung.
Cum vom defini? De aici apare cea mai ușoară opțiune - forma de a avea o variabilă de tip Boolean DolgiyTap, în evenimentul PriAktivizatsiiYacheyki ustanalivat-l în Adevăr și se află în alegeri. În Activare conecta handler stand-by că o jumătate de secundă de verificare - în cazul în care DolgiyTap = true, atunci arată meniul de utilizator dacă minți - atunci nu fac nimic.
A spus - făcut. Scrierea codului:
Cu toate acestea, chiar și în această variantă de realizare, este posibil să se utilizeze. Dar „poate“ nu ne convine, asa ca vom continua experimentele.
Dacă te uiți atent, rădăcina ambelor probleme se află în linia evidențiată. Înseamnă a face acest lucru - vom curăța liniile selectate pretutindeni, cu excepția activării handler, iar în handler așteptările pus controalele pe liniile selectate. În cazul în care linia selectată este - aceasta înseamnă activare a lucrat, și Choice - nu, prin urmare, este un robinet lung. Scrierea unui algoritm:
Verificăm - prima problemă persistă. Când deschideți formularul de prima linie rămâne încă un dedicat (și a declanșat un robinet lung), ca și în cazul în care apelul este forțat procedurile de curățare ignorate platforma rânduri. Mai mult decât atât, același comportament se observă și în versiunea desktop.
Dar a doua problemă este rezolvată - în ciuda faptului că șirul în sine după forma liniei de deschidere este evidențiată vizual, re-tasare lucrările ei și se execută handler-ul nostru.
Ne gândim la prima problemă. Există mai multe opțiuni pentru a fi indexată, dar ne-am stabilit pe următoarea realizare: Cap LozhnoeVydelenie formă variabilă cu tipul de boolean și deschiderea ei va atribui adevărul, și în activarea evenimentului prescrie că, dacă o alocare falsă - liniile evidențiate sunt eliminate, și nu se întâmplă nimic. încercați:
Și, vă rugăm să rețineți - puteți defini nu numai al dumneavoastră Tapa lung, dar, de asemenea, setați timpul de întârziere înainte de a fi declanșat (al doilea parametru procedura PodklyuchitObrabotchikOzhidaniya).
Ei bine, pentru a vă de două ori nu pentru a obține până la acest articol am pus un proces în care a implementat un handler simplu pentru un tapas lung - puteți apăsa pe linie și alegeți ce să facă cu ea - deplasa în sus, în jos, sau șterge.
Pentru a gestiona evenimentul o apăsare lungă pe linia de tabel ar trebui să folosească combinații de evenimente PriAktivizatsiiYacheyki și alegeri în care se verifică dacă linia curentă este evidențiată.
Un exemplu de implementare este prezentat în procesul de prelucrare atașat la articol. În algoritmul descris mai poate seta, de asemenea, un timp de întârziere, după care se declanșează handler. Metoda funcționează la fel de pe Android și iOS.
postfață
Noi nu spunem la revedere, iar următorul articol va spune despre diagrame și taxele noastre frumoase. Stay tuned!
Vadim Nevzorov
ace Integra, Odesa