ConstrainedBox
ConstrainedBox виджети салынган виджет жайгаштырылган тик бурчтуу аймактын (туурасы жана бийиктиги) параметрлерин орнотот. ConstrainedBox объектин түзүү үчүн төмөнкү конструктор колдонулат:
ConstrainedBox({Key key, @required BoxConstraints constraints, Widget child})
Керектүү чектөөлөр параметри төмөнкү конструкторлорго ээ BoxConstraints классын билдирет:
BoxConstraints({double minWidth: 0.0, double maxWidth: double.infinity, double minHeight: 0.0, double maxHeight: double.infinity}): Минималдуу туурасын (minWidth), максималдуу туурасын (maxWidth), минималдуу (minHeight) жана максималдуу (maxHeight) узундукту алат
BoxConstraints.expand({double width, double height}): контейнер созула турган туурасын жана узундугун кабыл алат.
BoxConstraints.loose(Size size): өлчөмү параметринен чоң болбошу керек болгон контейнерди түзөт.
BoxConstraints.tight(Size size): өлчөмү параметри менен так бирдей өлчөмдө болушу керек болгон контейнерди түзөт.
BoxConstraints.tightFor({double width, double height}): контейнер болушу керек так туурасы жана узундугун алат.
BoxConstraints.tightForFinite({double width: double.infinity, double height: double.infinity}): туурасы жана узундугу бирдей эмес болсо так маанилерди алат double.infinity
Контейнердин бул түрү виджетти белгилүү бир аймакка чектөө керек болгондо колдонулат.
Мисалы, Text виджети демейки боюнча контейнеринин толук узундугуна жана туурасына туура келет:
import 'package:flutter/material.dart';
void main() {
runApp(Center(
child: Text(
'Hello Flutter ',
textDirection: TextDirection.ltr,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 26)
)
)
);
}
Бул учурда, колдонуу менен, BoxConstraints.tightFor (width: 300, height: 100) ConstrainedBox аянты жана ага жараша анын мазмуну туурасы 300 жана бийиктиги 100 бирдик менен тик бурчтук менен чектелет.
Эгерде виджеттин мазмуну көбүрөөк орунду ээлесе, анда ал көрүнгөн аймакка кыскартылат. Мисалы, көп саптуу текстти көрсөтүүгө аракет кылалы:
Бул учурда, акыркы сап виджет үчүн бөлүнгөн аймакка туура келбейт, ошондуктан биз аны көрбөйбүз:
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)
)
)
)
);
}