“Container bilan qilinmaydigan 5 narsa”Flutter o‘rganayotganlar orasida Container — universal vosita,
“hamma narsa shu bilan hal bo‘ladi”, degan noto‘g‘ri tushuncha bor.
Lekin aslida,
professional UI qilaman desangiz, Containerni faqat
zarur joyda ishlatish kerak.
Keling, nima uchunligini 5ta misolda ko‘rib chiqamiz:
⸻
1. Containerda onTap ishlamaydi.Ko‘pchilik Containerga onTap yozib qo‘yadi va hayron qoladi: “Nega ishlamayapti?”
❌ Noto‘g‘ri:
Container(
onTap: () => print("Tapped"), // bu hech qachon ishlamaydi
)
✅ To‘g‘ri:
InkWell(
onTap: () => print("Tapped"),
child: Container(...),
)
Agar bosilganda animatsiya ko‘rinishini xohlasangiz, InkWell yoki GestureDetector ishlating.
⸻
2. color va BoxDecoration birga ishlamaydi.Agar Containerda decoration ishlatayotgan bo‘lsangiz, color:ni ishlatmang.
Chunki color:ni decoration: ichida berish kerak.
❌ Noto‘g‘ri:
Container(
color: Colors.red,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
),
)
✅ To‘g‘ri:
Container(
decoration: BoxDecoration(
color: Colors.red,
borderRadius: BorderRadius.circular(10),
),
)
3. Performance uchun Container har doim yaxshi emas.Container — bu
multi-purpose widget. U padding, margin, color, align, size… hammasini o‘zida jamlagan.
Lekin Flutter’da
minimal widget tree ishlatish yaxshi odat.
Masalan:
Padding(child: Text())
ColoredBox(color: ..., child: ...)
Align(alignment: ..., child: ...)
SizedBox(height: ..., width: ...)
Shularni to‘g‘ri joyda ishlatsangiz,
build time ham,
rebuild time ham kamayadi.
⸻
4. Container ba’zi joylarda infinite size beradi.Agar parent widget size bermasa, Container “cheksiz” bo‘lib qolishi mumkin.
Bu esa layout error, overflow yoki scroll bug’lariga sabab bo‘ladi.
⸻
5. Ripple effekt ko‘rinmaydi, agar Material bo‘lmasaAgar siz InkWell ishlatayotgan bo‘lsangiz, lekin
bosilganda effekt (splash/ripple) ko‘rinmayotgan bo‘lsa — bu ko‘pincha Material widget yo‘qligidan bo‘ladi.
InkWell faqat Material ichida turganida chiroyli effekt beradi.
Bu holatda GestureDetector yaxshiroq variant bo‘lishi mumkin, lekin unda ripple yo‘q.
⸻
Professional kod yozish — bu kerakli joyda kerakli widget tanlay olish.Container – yomon emas. Lekin faqat Container –
yomon odat.⸻
Siz ham hozirgacha Containerdan ko‘p foydalangansizmi?
Kommentda Container bilan bog‘liq biron “LOL” holatingiz bo‘lsa, yozib qoldiring!
@alixr