Я пытаюсь сделать виджет на 1/3 экрана независимо от ориентации телефона. Как это сделать?Что было бы хорошим способом для виджета взять 1/3 экрана?
ответ
я получил то, что я хотел с помощью столбца и упаковки содержимого в Гибкое и изменения гибкого, чтобы получить ребенка, чтобы занять 1/3 экрана:
new Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
new Flexible(flex: 2, child: new SizedBox()),
new Flexible(flex: 1, child: createTextBox())
]
);
Существует несколько виджетов, которые могут помочь: AspectRatio, Column/Expanded и CustomSingleChildLayout в частности. Трудно дать хороший ответ, не зная точно, что вы хотите делать.
Я думаю, что получил то, что мне было нужно, но isomg Column, а затем обертывание детей в Flexible. – Mark
@Mark вы можете самостоятельно ответить на этот вопрос своим решением? Все в порядке, чтобы самостоятельно ответить на Stack Overflow, и я уверен, что другим понравится ваше решение. Благодаря!! –
Вы должны попробовать использовать Expanded виджеты как дети своего ряда, например, так:
new Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
new Expanded(
child: yourFirstContentWidget,
),
new Expanded(
child: yourNextContentWidget,
),
new Expanded(
child: yourLastContentWidget,
)
]
)
Расширенной виджеты каждый пытается заполнить столько пространства строки, насколько это возможно. Поскольку их три, они должны будут разделить пространство, и в итоге вы получите 1/3 строки.
Можете ли вы быть более конкретным? Вы хотите, чтобы вы хотели видеть виджет, который расширяет всю ширину устройства и составляет только 1/3 от высоты? Или вы имеете в виду кнопку, которая находится на строке и составляет только 1/3 от ширины телефона? – Reagankm