sudofeed

dev · · 09:11 · 2 min de citit

Antetul pentru tab-urile colapsabile din React Native mutat în cod nativ pentru a elimina decalajul

O nouă bibliotecă, react-native-collapsible-tabs-native, a fost dezvoltată pentru a rezolva problema decalajului de cadre în implementările de tab-uri colapsabile din React Native. Mutând animația de colapsare a antetului în întregime în cod nativ (UIKit/ViewPager2), biblioteca asigură că antetul și conținutul se mișcă sincronizat, eliminând decalajul vizual care apare în timpul derulării rapide.

Dezvoltatorii întâmpină frecvent un bug vizual frustrant în aplicațiile React Native care prezintă ecrane de profil în stil Instagram sau Twitter: apare un decalaj vizibil între antet și conținut în timpul derulării rapide sau 'fling' a listelor, în special pe Android sau când firul JavaScript este ocupat. Această problemă apare deoarece implementările tradiționale bazate pe JavaScript se bazează pe căi de actualizare separate pentru vizualizarea de derulare nativă și animația antetului, ducând la o întârziere de un cadru. Noua bibliotecă, react-native-collapsible-tabs-native, abordează direct acest aspect prin mutarea întregului mecanism de colapsare în cod nativ.

Inovația tehnică centrală a react-native-collapsible-tabs-native constă în arhitectura sa, care utilizează componente native ale platformei precum UIKit pe iOS și ViewPager2 pe Android. Componentele React Native sunt montate și apoi re-părinte în mod nativ în sloturi specifice: o bandă de antet și o bandă de bară de tab-uri poziționate deasupra unui pager orizontal. Crucial, vizualizarea de derulare verticală a paginii active este observată direct din partea nativă, iar offset-ul său de derulare este utilizat pentru a traduce benzile de antet și tab-uri. Acest lucru asigură că antetul și conținutul listei sunt actualizate în același callback nativ, eliminând implicarea firului JavaScript în animație și, prin urmare, desincronizarea.

Această abordare condusă nativ are implicații semnificative pentru performanță și experiența utilizatorului în dezvoltarea React Native, în special pentru ecranele complexe cu conținut derulabil. Deși biblioteca este doar pentru Fabric și necesită React Native 0.80+, ea oferă o soluție robustă pentru obținerea unei derulări fluide, fără sacadări. Dezvoltările viitoare s-ar putea concentra pe extinderea compatibilității sau pe adăugarea de caracteristici native mai avansate, dar impactul imediat este o implementare mai curată și mai performantă a unui model comun de UI.

$ sursa --originală

dev.to

Rezumat realizat de Sudofeed pe baza articolului original. Drepturile asupra conținutului aparțin sursei originale.

citește originalul ↗