Rute personalizate ancorate

Cum se implementeaza un traseu care ancoreaza elemente vizuale la un widget in ruta sursa.

Dupa ce am urmarit discutia excelenta a lui Marcin Szalek despre interfetele UI complexe in Flutter, am cautat cateva interactiuni UI interesante cu care sa experimentez si am gasit aceasta fotografie pe dribling. kelly vedovelli porno Ceea ce mi-a atras atentia a fost tranzitia ecranului, care dezvaluie un nou ecran prin extinderea unui clip circular.

Iata cum arata in Flutter:

Daca sunteti interesat, aceasta ruta este disponibila pe pub. porno sensuelle dev (circular_clip_route).

In timp ce implementam ruta, am constatat ca o problema cheie a fost ancorarea animatiei de tranzitie la Widget-ul care impinge ruta, dar solutia este utila in general, de exemplu pentru meniuri (cum ar fi PopupMenuButton) sau sfaturi. femmes fontaines porno

Pentru a pozitiona orice element relativ la un widget ancora in interiorul rutei de destinatie, avem nevoie de geometria widgetului ancora in sistemul de coordonate al rutei de destinatie.

Va trebui sa intelegem relatia dintre Widgets, Elements, BuildContexts si RenderObjects, asa ca haideti sa recapitulam pe scurt. porno senior Un widget este o configuratie pentru un element. Un element este o instanta a unui widget (intr-o pozitie specifica din arborele elementului). porno mere Elementul implementeaza BuildContext. RenderObjects ofera elementelor reprezentarea lor vizuala. flashing porno BuildContext.findRenderObject () poate fi folosit pentru a gasi RenderObject care reprezinta vizual acel BuildContext / Element. porno jupe

Pentru a crea o matrice de transformare de la spatiul de coordonate al widgetului ancora la cel al rutei de destinatie, avem nevoie de BuildContext al widgetului de ancora si BuildContext al navigatorului care contine ruta de destinatie. O implementare a rutei o poate obtine pe cea din urma prin Route. vieux films porno navigator.context. porno 70

Pentru a accesa BuildContext-ul widgetului de ancorare, fie infasurati widgetul de ancora intr-un Builder, fie treceti-l cu un GlobalKey.

Acum, ca stim cum sa obtinem RenderObjects, le putem folosi pentru a calcula geometria Widgetului ancorei, in sistemul de coordonate al traseului de destinatie. porno 90

Ca o nota laterala, este important sa intelegeti ca RenderObjects ar trebui accesat in acest mod numai de la gestionatorii de evenimente sau ascultatorii de animatie. RenderObjects trebuie sa fie asezate intr-un cadru anterior si sa nu fie murdare, ceea ce, de exemplu, nu este garantat in timpul fazei de construire. chatte porno Pentru implementarile de rute personalizate, Route.didPush si Route. film porno clara morgane



  • porno xxxl
  • candice porno
  • cougar porno
  • anna polina porno
  • porno ecole
  • porno excitant
  • bella thorne porno
  • porno orzel
  • cuisine porno
  • forum porno
  • asmr porno
  • cardi b porno
  • porno gay big dick
  • film porno 1970
  • porno gay dad
  • your porno sexy
  • film porno cougar
  • porno asia
  • porno free francais
  • actrice porno italienne





didPop sunt candidati buni pentru a suprascrie si a calcula orice geometrie necesara.

Traseul personalizat de mai jos demonstreaza un exemplu minim de cum sa implementati un traseu , care isi suprapune continutul deasupra unei ancore. porno jeune ado In sine, acesta nu este un traseu foarte util, dar demonstreaza toate partile importante. Pentru simplitate, nu exista animatii de tranzitie. porno cheval Daca sunteti interesat de un exemplu mai complex, aruncati o privire la implementarea mea a circular_clip_route mentionat anterior. Este o bucata mai mare de cod, dar am incercat sa explic ce face fiecare parte si de ce se afla acolo, in comentarii. porno 80

  • RenderObjects implementeaza reprezentarea vizuala a Widgeturilor si contine informatii despre aspect.
  • BuildContext. porno zoophile findRenderObject () poate fi folosit pentru a accesa RenderObject care reprezinta vizual un Element.
  • RenderObject. jessica alba porno getTransformTo (null) returneaza o transformare de la sistemul local la sistemul global de coordonate. Daca sunteti interesat de ceea ce reprezinta parametrul, aruncati o privire la documentele legate. porno intense
  • Accesati informatii despre aspect doar in gestionarele de evenimente si ascultatorii de animatie.
  • ModalRoute. porno cougar francaise setState si ModalRoute.buildTransitions sunt similare cu State. porno ivre setState si State.build.
  • Stack si Positioned.fromRect sunt utile pentru pozitionarea Widgeturilor bazate pe un Widget ancora intr-un traseu personalizat.

Sper ca acest articol se va dovedi util, chiar daca unele subiecte (cum ar fi RenderObjects si transforms) sunt putin mai avansate si sunt bucuros sa raspund la orice intrebare si sa clarific / extind acolo unde este necesar.

https://www. twitter.com/FlutterComm