Я хочу знать, как установить ширину, соответствующую ширине родительского макета
new Container(
width: 200.0,
padding: const EdgeInsets.only(top: 16.0),
child: new RaisedButton(
child: new Text(
"Submit",
style: new TextStyle(
color: Colors.white,
)
),
colorBrightness: Brightness.dark,
onPressed: () {
_loginAttempt(context);
},
color: Colors.blue,
),
),
Я знаю немного о Expanded
виджете, но Expanded
расширяет обзор в обоих направлениях, я не знаю, как это сделать.
flutter
flutter-layout
Мохит Сутар
источник
источник
Ответы:
Правильным решением было бы использовать
SizedBox.expand
виджет, который заставляет егоchild
соответствовать размеру своего родителя.Есть много альтернатив, которые позволяют более или менее настраивать:
или используя
ConstrainedBox
источник
Failed assertion: line 1645 pos 12: '!_debugDoingThisLayout': is not true.
Атрибут размера может быть предоставлен с
ButtonTheme
помощьюminWidth: double.infinity
или после приземления https://github.com/flutter/flutter/pull/19416
источник
источник
Самый простой способ - использовать
FlatButton
обертку внутриContainer
. Кнопка по умолчанию принимает размер своего родителя и, таким образом, назначает желаемую ширину дляContainer
.Вывод:
источник
После некоторых исследований я нашел решение, и благодаря @ Günter Zöchbauer,
Я использовал столбец вместо контейнера и
установите свойство в столбец CrossAxisAlignment.stretch, чтобы заполнить соответствующий родительский элемент кнопки
источник
Column
/Row
не следует использовать для однодетского макета. Вместо этого используйте альтернативу с одним ребенком. Такие , какAlign
,SizedBox
и тому подобные.Вы можете установить соответствующий родительский элемент виджета с помощью
1) установите ширину на double.infinity :
2) Используйте MediaQuery:
источник
@ Мохит Сутар,
Найдено одно из лучших решений для соответствия родителя к ширине , а также высоту , как показано ниже
Здесь вы можете проверить, что
Expanded
Контроллер получает всю оставшуюся ширину и высоту .источник
Это сработало для меня.
Самый простой способ указать ширину или высоту родительского элемента в приведенном выше коде.
источник
Для
match_parent
вы можете использоватьДля любого конкретного значения вы можете использовать
источник
Следующий код работает для меня
источник
Это работает для меня в автономном виджете.
источник
Это работает для меня.
источник
Также можно использовать a
ListTile
, поскольку список заполняет всю ширину:источник
вы можете сделать это с помощью MaterialButton
источник
источник
Это сработало для меня
источник
RaisedButton( child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [Text('Submit')], ) )
Меня устраивает.источник
Самый простой подход - использовать контейнер, задав его ширину до бесконечности. См. Ниже пример кода
источник
Что-то вроде этого у меня работает.
источник
Поместите свой
RaisedButton(...)
вSizedBox
источник