ошибка `child.hasSize»: неверно и ограниченное поле не работает

#flutter

Вопрос:

child.hasSize': is not true. widget causing error tabbarview Тогда произошла ошибка, из-за которой у меня constrained был размер, как я думал textboxes , вызывающий error . Но теперь constrained box это также показывает, что это так not constrained . Что это такое и как это исправить?

 Widget build(BuildContext context) {
onlineStatus = true;  
return ConstrainedBox(
    constraints: BoxConstraints(maxHeight: 200, maxWidth:200),
    child: Container(
        width: 200,
        height: 200,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ConstrainedBox(
                constraints: BoxConstraints(maxHeight: 100, maxWidth: 100),
                child: OnlineIndicator()),
            SizedBox(height: 7),
            ToolSetButton(
                svgPicPath: svgStakPath,
                
                width: 35,
                height: 35,
                function: testFunc),
            SizedBox(height: 11),
            
 

введите описание изображения здесь

Ответ №1:

было бы лучше, если бы вы поделились TabBar своим . Вот концепция, которую я получаю из этого code , и ошибки.

С верхнего уровня ConstrainedBox Column мы обещали , что этот виджет столбца займет maxHeight: 200 , и если вы получите наш пользовательский интерфейс меньше 200, он создаст переполнение (когда размер дочерних столбцов>=200)

давайте проверим наши Column inside ConstrainedBox .
как мы и обещали здесь, отдадим maxHeight: 100 только за Container , и поэтому на это уйдет 100 .

давайте проверим рост детей

  • Контейнер = 100
  • размер коробки = 10
  • Контейнер = 35
  • Размер коробки = 11

Таким образом, столбец будет принимать минимум=155 в качестве высоты, и этот виджет parent будет меньше 156 высоты, он создаст нижний поток.

Изображение с высотой 156

изображение 1

Изображение в то время как высота

введите описание изображения здесь

Ответ №2:

Я прошел через свою собственную проблему и нашел решение. Если у вас есть виджеты, которые включают текстовые поля и т.д., И если вы хотите разместить виджет внутри строк, вам нужно обернуть его sizedbox, expanded, flexible и т.д. и указать ширину.