Flexible ocupa solo el espacio necesario y Expanded ocupa todo el espacio disponible, respetando el flexfactor. Consulte la documentación del Expandedwidget para obtener más información.
Aleksandar
99
Expanded es solo una abreviatura de Flexible
Usando expandido de esta manera:
Expanded(
child: Foo(),
);
es estrictamente equivalente a:
Flexible(
fit: FlexFit.tight,
child: Foo(),
);
Es posible que desee utilizar Flexibleover Expandedcuando desee un fitdiseño diferente , útil en algunos diseños receptivos.
La diferencia entre FlexFit.tighty FlexFit.loosees que suelta permitirá que su hijo tenga un tamaño máximo, mientras que la tensión lo fuerza a llenar todo el espacio disponible.
no Maximum sizey Available spacesignifica lo mismo aquí?
CopsOnRoad
No, por tamaño máximo me refiero a algo como tener como hijo de Flexible un ConstrainedBox con un maxHeight dentro de una columna
Rémi Rousselet
25
En palabras sencillas, Flexible.tightobligará a los niños a ocupar todo el espacio disponible y Flexible.loosedejará que los niños hagan lo que quieran. Algunos niños pueden ocupar todo el espacio y otros no, dependiendo de sus tipos.
CopsOnRoad
30
Los widgets de Flexible son WRAP_CONTENT predeterminados, aunque puede cambiarlos mediante el parámetro Ajustar.
El widget en Expandido es MATCH_PARENT , puede cambiarlo usando flex .
Puede usar Flexible para cambiar el tamaño de los widgets en filas y columnas . Se utiliza principalmente para ajustar el espacio de los diferentes widgets secundarios manteniendo la relación con sus widgets principales.
Mientras tanto, Expanded cambia las restricciones enviadas a los hijos de filas y columnas ; ayuda a llenar los espacios disponibles allí. Por lo tanto, cuando envuelve a su hijo en un widget expandido, llena los espacios vacíos.
Proporcionar estos videos del canal oficial de YouTube de Flutter solo para ayudar a las personas, que podrían buscar esto en el futuro próximo ...
La única diferencia si usa en Flexiblelugar de Expanded, es que Flexiblepermite que su hijo tenga el mismo ancho o menor que el Flexiblemismo, mientras que Expandedobliga a su hijo a tener exactamente el mismo ancho de Expanded. Pero ambos Expandede Flexibleignoran el ancho de sus hijos cuando se dimensionan.
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!’))),
]
)
Nota : esto significa que es imposible expandir los Rowniños proporcionalmente a sus tamaños. La fila usa el ancho exacto del niño o lo ignora por completo cuando usa Expandedo Flexible.
flexfactor. Consulte la documentación delExpandedwidget para obtener más información.Expandedes solo una abreviatura deFlexibleUsando expandido de esta manera:
es estrictamente equivalente a:
Es posible que desee utilizar
FlexibleoverExpandedcuando desee unfitdiseño diferente , útil en algunos diseños receptivos.La diferencia entre
FlexFit.tightyFlexFit.loosees que suelta permitirá que su hijo tenga un tamaño máximo, mientras que la tensión lo fuerza a llenar todo el espacio disponible.fuente
Maximum sizeyAvailable spacesignifica lo mismo aquí?Flexible.tightobligará a los niños a ocupar todo el espacio disponible yFlexible.loosedejará que los niños hagan lo que quieran. Algunos niños pueden ocupar todo el espacio y otros no, dependiendo de sus tipos.Los widgets de Flexible son WRAP_CONTENT predeterminados, aunque puede cambiarlos mediante el parámetro Ajustar.
El widget en Expandido es MATCH_PARENT , puede cambiarlo usando flex .
fuente
Expanded- esFlexiblecon ajuste fijoclass Expanded extends Flexible { const Expanded({ Key key, int flex = 1, @required Widget child, }) : super( key: key, flex: flex, fit: FlexFit.tight, child: child ); }fuente
Puede usar Flexible para cambiar el tamaño de los widgets en filas y columnas . Se utiliza principalmente para ajustar el espacio de los diferentes widgets secundarios manteniendo la relación con sus widgets principales.
Mientras tanto, Expanded cambia las restricciones enviadas a los hijos de filas y columnas ; ayuda a llenar los espacios disponibles allí. Por lo tanto, cuando envuelve a su hijo en un widget expandido, llena los espacios vacíos.
Proporcionar estos videos del canal oficial de YouTube de Flutter solo para ayudar a las personas, que podrían buscar esto en el futuro próximo ...
Expandido:
Flexible:
fuente
Expanded () no es más que Flexible () con
Flexible (fit: FlexFit.tight) = Expanded()pero, usos flexibles
fit :FlexFit.loosepor defecto.FlexFit.tight = Quiere ajustarse bien al padre ocupando tanto espacio como sea posible.
FlexFit.loose = Quiere encajar suelto en el padre ocupando el menor espacio posible para sí mismo.
fuente
La única diferencia si usa en
Flexiblelugar deExpanded, es queFlexiblepermite que su hijo tenga el mismo ancho o menor que elFlexiblemismo, mientras queExpandedobliga a su hijo a tener exactamente el mismo ancho deExpanded. Pero ambosExpandedeFlexibleignoran el ancho de sus hijos cuando se dimensionan.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!’))), ] )Nota : esto significa que es imposible expandir los
Rowniños proporcionalmente a sus tamaños. La fila usa el ancho exacto del niño o lo ignora por completo cuando usaExpandedoFlexible.fuente