2016-12-31 4 views
0

Я пытаюсь сделать виджет на 1/3 экрана независимо от ориентации телефона. Как это сделать?Что было бы хорошим способом для виджета взять 1/3 экрана?

+0

Можете ли вы быть более конкретным? Вы хотите, чтобы вы хотели видеть виджет, который расширяет всю ширину устройства и составляет только 1/3 от высоты? Или вы имеете в виду кнопку, которая находится на строке и составляет только 1/3 от ширины телефона? – Reagankm

ответ

1

я получил то, что я хотел с помощью столбца и упаковки содержимого в Гибкое и изменения гибкого, чтобы получить ребенка, чтобы занять 1/3 экрана:

new Column(
    mainAxisAlignment: MainAxisAlignment.spaceBetween, 
    children: <Widget>[ 
    new Flexible(flex: 2, child: new SizedBox()), 
    new Flexible(flex: 1, child: createTextBox()) 
    ] 
); 
0

Существует несколько виджетов, которые могут помочь: AspectRatio, Column/Expanded и CustomSingleChildLayout в частности. Трудно дать хороший ответ, не зная точно, что вы хотите делать.

+0

Я думаю, что получил то, что мне было нужно, но isomg Column, а затем обертывание детей в Flexible. – Mark

+0

@Mark вы можете самостоятельно ответить на этот вопрос своим решением? Все в порядке, чтобы самостоятельно ответить на Stack Overflow, и я уверен, что другим понравится ваше решение. Благодаря!! –

0

Вы должны попробовать использовать Expanded виджеты как дети своего ряда, например, так:

new Row(
    mainAxisAlignment: MainAxisAlignment.spaceBetween, 
    children: [ 
    new Expanded(
     child: yourFirstContentWidget, 
       ), 
    new Expanded(
     child: yourNextContentWidget, 
       ), 
    new Expanded(
     child: yourLastContentWidget, 
       ) 
      ] 
     ) 

Расширенной виджеты каждый пытается заполнить столько пространства строки, насколько это возможно. Поскольку их три, они должны будут разделить пространство, и в итоге вы получите 1/3 строки.

 Смежные вопросы

  • Нет связанных вопросов^_^