ConstrainedBox
ConstrainedBox vidjeti oʻrnatilgan vidjet joylashtirilgan toʻrtburchaklar maydoni (kenglik va balandlik) parametrlarini oʻrnatadi. ConstrainedBox obyektini yaratish uchun quyidagi konstruktordan foydalaniladi:
1
|
ConstrainedBox({Key key, @required BoxConstraints constraints, Widget child})
|
Kerakli cheklovlar parametri quyidagi konstruktorlarga ega BoxConstraints sinfini ifodalaydi:
BoxConstraints ({double minWidth: 0,0, double maxWidth: double.infinity, double minHeight: 0,0, double maxHeight: double.infinity}): minimal kenglik (minWidth), maksimal kenglik (maxWidth), minimal (minHeight) va maksimal () oladi maxHeight ) uzunligi
BoxConstraints.expand ({ikki kenglik, ikki barobar balandlik}): konteyner cho'zilishi mumkin bo'lgan kenglik va uzunlikni oladi
BoxConstraints.loose (Oʻlcham oʻlchami): oʻlcham parametridan katta boʻlmasligi kerak boʻlgan konteyner yaratadi
BoxConstraints.tight (Oʻlcham oʻlchami): oʻlcham parametri bilan aynan bir xil oʻlchamda boʻlishi kerak boʻlgan konteyner yaratadi
BoxConstraints.tightFor ({ikki kenglik, ikki barobar balandlik}): konteyner bo'lishi kerak bo'lgan aniq kenglik va uzunlikni oladi
BoxConstraints.tightForFinite ({ikki kenglik: double.infinity, double balandlik: double.infinity}): agar ular double.infinity ga teng bo'lmasa, aniq kenglik va uzunlik qiymatlarini qabul qiladi.
Ushbu turdagi konteyner vidjetni ma'lum bir hududga cheklashimiz kerak bo'lganda ishlatiladi.
Masalan, Matn vidjeti sukut bo'yicha konteynerning to'liq uzunligi va kengligigacha cho'ziladi:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import 'package:flutter/material.dart';
void main() {
runApp(Center(
child: Text(
'Hello Flutter from metanit.com',
textDirection: TextDirection.ltr,
textAlign: TextAlign.center, // текст по центру
style: TextStyle(fontSize: 26) // высота шрифта 26
)
)
);
}
|
Ekrandagi matn maydonini cheklash uchun ConstrainedBox dan foydalaning:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import 'package:flutter/material.dart';
void main() {
runApp(Center(
child: ConstrainedBox(
constraints: BoxConstraints.tightFor(width: 300, height: 100),
child: Text(
'Hello Flutter from metanit.com',
textDirection: TextDirection.ltr,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 26) // высота шрифта 26
)
)
)
);
}
|
Bunday holda, BoxConstraints.tightFor (kengligi: 300, balandligi: 100) konstruktoridan foydalanib, ConstrainedBox maydoni va shunga mos ravishda uning mazmuni kengligi 300 va balandligi 100 birlik bo'lgan to'rtburchaklar bilan chegaralanadi.
Agar vidjetning mazmuni ko'proq joy egallasa, u ko'rinadigan maydonga qisqartiriladi. Masalan, ko'p qatorli matnni ko'rsatishga harakat qilaylik:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import 'package:flutter/material.dart';
void main() {
runApp(Center(
child: ConstrainedBox(
constraints: BoxConstraints.tightFor(width: 320, height: 80),
child: Text(
'Мы все учились понемногу\nЧему-нибудь и как-нибудь,\nТак воспитаньем, слава богу,\nУ нас немудрено блеснуть.',
textDirection: TextDirection.ltr,
style: TextStyle(fontSize: 22) // высота шрифта 22
)
)
)
);
}
|
Bunday holda, oxirgi qator vidjet uchun ajratilgan maydonga to'g'ri kelmaydi, shuning uchun biz uni ko'rmaymiz:
Dostları ilə paylaş: |