Əsas widget-lər və siyahılar
Gündəlik işin böyük hissəsi bir neçə widget ətrafında fırlanır:
- Scaffold — Material ekranın skeleti:
appBar,body,floatingActionButton,bottomNavigationBar,drawer - Text və Image — məzmun;
Image.network,Image.asset,errorBuilderilə xəta halı - ListView və GridView — sürüşən siyahılar
- Stack və Positioned — üst-üstə yerləşdirmə
- Padding, SizedBox, Align, Center — boşluq və düzülüş
Bunlardan siyahılar interview üçün ən vacibidir, çünki performans sualı məhz orada başlayır.
ListView-un iki istifadə forması var və fərqi bilməmək klassik səhvdir:
ListView(children: [...])— bütün uşaqları dərhal qurur. 10 element üçün normaldır, 10 000 üçün fəlakətListView.builder(itemCount:, itemBuilder:)— tənbəldir: yalnız ekranda görünən (və bir az ətrafdakı) elementləri qurur
Əlavə variantlar: ListView.separated (aralarda ayırıcı), GridView.builder, və uzun/qarışıq səhifələr üçün CustomScrollView + sliver-lər.
Sonsuz və ya böyük siyahılarda həmişə `.builder` — bu, interview-də gözlənilən cavabdır.
Interview ipucu. "Siyahıda 10 000 element var, necə göstərərsən?" sualı demək olar hər Flutter müsahibəsində olur. Cavabın üç hissəsi olsun: (1) ListView.builder — tənbəl qurma; (2) element widget-lərini mümkün qədər const etmək və ağır işi itemBuilder-dən çıxarmaq; (3) data tərəfi — səhifələmə (pagination) və şəkillərin cache-lənməsi. Yalnız birinci bənd junior cavabıdır.
📚 Mənbələr və sənədlər
- Widget kataloqurəsmidocs.flutter.dev
- ListView classrəsmiapi.flutter.dev
Sənəd dörd konstruktoru və hansının nə vaxt uyğun olduğunu açıq müqayisə edir.
- ListView.builderrəsmiapi.flutter.dev
- Scaffold classrəsmiapi.flutter.dev