Есть ли во Flutter виджет, который настраивает себя на содержание своих дочерних элементов в строках и столбцах?
Кажется, я не могу найти ничего связанного, и меня постоянно поражают бесконечные ошибки переполнения .....
В качестве примера, скажем, у меня будет 3 виджета в строке, 1 из которых является текстом, который я не могу догадаться, как долго это будет, но мне нужно расширить родительский столько, сколько нужно виджету и в то же время обернуть текст
У меня будет что-то вроде:
Row(
children: [
Expanded(child: Widget1(....)),
Expended(child: Text(.....)),
Expanded(child: Widget2(....))
]
)
Верно?
Я бы хотел родителя строки чтобы расширить столько, сколько нужно для показа дочерних элементов, я хочу выровнять Widget1 и Widget2 по-разному (1-центр, 2-низ). Если я помещу их в столбец, я могу центрировать Widget1, но я не могу поместить Widget2 внизу, потому что, если я помещу столбец в максимальный размер, он переполняется, если я не делаю, он не выравнивается ...
Как Вы бы сделали это?
Я действительно не понимаю логику c, стоящую за вещами макетов inifnite ....
Например, вот где я застрял в данный момент.
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Global.findCategory(event.categId).color.withAlpha(150),
blurRadius: 20,
spreadRadius: -20,
offset: Offset(0, 5)
)
],
color: Colors.white,
borderRadius: BorderRadius.circular(30)
),
child: Row(
children: <Widget>[
Align(
alignment: Alignment.center,
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Container(
width: Global.scaleSmallDevice(context) * 64,
height: Global.scaleSmallDevice(context) * 64,
decoration: BoxDecoration(
shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(10),
image: DecorationImage(
fit: BoxFit.cover,
image: event.image
)
)
),
)
,
),
Flexible(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
CustomText(
text: title,
color: Global.findCategory(event.categId).color,
fontSize: 16,
),
Flexible(
child: CustomText(
text: shortInfo,
color: Global.findCategory(event.categId).color,
fontSize: 12,
),
)
],
),
),
Stack(
alignment: Alignment.bottomCenter,
children: <Widget>[
Align(
alignment: Alignment.bottomCenter,
child: StatefulBuilder(
builder: (context, setState) {
IconData buttonIcon = (event.favorite) ? Icons.favorite : Icons.favorite_border;
return SplashButton(
splashColor: Global.findCategory(event.categId).color,
child: Icon(buttonIcon, color: Global.findCategory(event.categId).color, size: 30),
onTap: () async {
await event.setFavorite(context);
setState(() {
buttonIcon = (event.favorite) ? Icons.favorite : Icons.favorite_border;
});
}
);
},
),
),
],
),
),
],
);
}
В этом случае я хочу, чтобы виджет StatefulBuilder находился внизу, а весь контейнер был таким же маленьким, как столбец с виджетами CustomText.
Виджет с изображением внутри, который я хочу он будет центрирован, а текст будет полностью доступен для пользователя.
Если я не добавлю столбец в качестве контейнера, он пойдет, как позволяет высота, а сам виджет StatefulBuilder центрируется внизу, в текущем коде он находится в центре .....
Извините, если я не связный, немного поздно, и я устал после кодирования весь день и застрял в этом виджете на несколько часов.