Проблема в том, что SizedBox
может установить размер виджета только в пределах ограничений, установленных родителем. Многие виджеты, такие как Padding, хотят, чтобы их дочерние элементы занимали 100% доступного им пространства. Это имеет смысл, потому что, если ребенок меньше, они не будут знать, куда его положить.
Если вы хотите, чтобы ребенок был меньше, чем родитель, вы можете использовать Center
или Align
, например, заменить
Padding(
child: SizedBox(
width: 100,
child: ...
),
),
);
с
Padding(
child: Center(
child: SizedBox(
width: 100,
child: ...
),
),
),
);
(для приложения чата вы можете использовать Align
вместо Center
)
Прочтите по теме: https://flutter.dev/docs/development/ui/layout/constraints