Scaffold(
appBar: AppBar(),
body: Column(
children: <Widget>[
Row(
children: <Widget>[
buildExpanded(),
buildFlexible(),
],
),
Row(
children: <Widget>[
buildExpanded(),
buildExpanded(),
],
),
Row(
children: <Widget>[
buildFlexible(),
buildFlexible(),
],
),
],
),
);
flex
czynnik. Zobacz dokumentacjęExpanded
widżetu, aby uzyskać więcej informacji.Expanded
to tylko skrót odFlexible
Korzystanie z rozszerzonego w ten sposób:
jest ściśle równoważne z:
Możesz użyć
Flexible
go,Expanded
gdy chcesz innyfit
, przydatnego w niektórych responsywnych układach.Różnica między
FlexFit.tight
aFlexFit.loose
polega na tym, że luźne pozwoli dziecku mieć maksymalny rozmiar, a ciasne zmusi dziecko do wypełnienia całej dostępnej przestrzeni.źródło
Maximum size
iAvailable space
oznacza to samo tutaj?Flexible.tight
zmusi dzieci do zajęcia całej dostępnej przestrzeni iFlexible.loose
pozwoli dzieciom robić co chcą. Niektóre dzieci mogą zajmować całą przestrzeń, a inne nie, w zależności od ich typów.Widżety w obszarze Elastyczne są domyślnie WRAP_CONTENT, chociaż można to zmienić za pomocą parametru Dopasuj.
Widżet pod rozwiniętym ma MATCH_PARENT , możesz go zmienić za pomocą flex .
źródło
Expanded
- jestFlexible
z dopasowanym krojemclass Expanded extends Flexible { const Expanded({ Key key, int flex = 1, @required Widget child, }) : super( key: key, flex: flex, fit: FlexFit.tight, child: child ); }
źródło
Możesz użyć opcji Elastyczny, aby zmienić rozmiar widżetów w wierszach i kolumnach . Służy głównie do dostosowywania przestrzeni różnych widżetów podrzędnych przy zachowaniu relacji z ich widżetami nadrzędnymi.
W międzyczasie Expanded zmienia ograniczenia wysyłane do elementów podrzędnych wierszy i kolumn ; pomaga wypełnić dostępne tam przestrzenie. Dlatego po umieszczeniu dziecka w widżecie rozszerzonym wypełnia on puste przestrzenie.
Udostępnianie tych filmów z oficjalnego kanału Flutter na YouTube tylko po to, aby pomóc ludziom, którzy mogą tego szukać w nadchodzącej przyszłości ...
Rozszerzony:
Elastyczne:
źródło
Jedyną różnicą, jeśli użyjesz
Flexible
zamiastExpanded
, jest to, żeFlexible
jego element podrzędny ma taką samą lub mniejszą szerokość niż onFlexible
sam, aExpanded
zmusza jego dziecko do posiadania dokładnie tej samej szerokościExpanded
. Ale obojeExpanded
iFlexible
ignoruj szerokość swoich dzieci podczas określania rozmiaru.Row(children:[ Flexible( child: Container(color: Colors.red, child: Text('This is a very long text that won’t fit the line.'))), Flexible( child: Container(color: Colors.green, child: Text(‘Goodbye!’))), ] )
Uwaga : Oznacza to, że nie można rozwijać
Row
dzieci proporcjonalnie do ich rozmiarów. Wiersz używa dokładnej szerokości dziecka lub całkowicie ją ignoruje, gdy używaszExpanded
lubFlexible
.źródło
Expanded () to nic innego jak Flexible () with
Flexible (fit: FlexFit.tight) = Expanded()
ale Elastyczne używa
fit :FlexFit.loose
domyślnie.FlexFit.tight = Chce ciasno dopasować się do rodzica, zajmując jak najwięcej miejsca.
FlexFit.loose = Chce luźno dopasować się do rodzica, zajmując jak najmniej miejsca dla siebie.
źródło