Путаница вложенного виджета columns()/неизвестный результат в дротике/трепетании ⇐ Android
Путаница вложенного виджета columns()/неизвестный результат в дротике/трепетании
Оба представленных здесь кода работают нормально, но я не могу понять, что происходит.
Scaffold( AppBar: AppBar( Цвет фона: Цвета.желтый, title: const Text('Счетчик кликов Flutter Demo'), ), тело: Контейнер( цвет: Цвета.красный, ребенок: Столбец( дети: [Текст("привет")], ), ), ); Это имеет такой вывод, где вся вертикальная ось — это column(), где я предполагаю, что, поскольку mainAxisSize:MainAxisSize.max является свойством по умолчанию для < code>column(), поэтому он занимал 100% пространства по вертикальной оси с шириной его child . Но для этой части кода:
Scaffold( AppBar: AppBar( Цвет фона: Цвета.желтый, title: const Text('Счетчик кликов Flutter Demo'), ), тело: Контейнер( цвет: Цвета.красный, ребенок: Столбец( дети: [Text("родительский столбец"), Контейнер( цвет: Цвета.синий, дочерний элемент: const Column(дети: [Text("дочерний столбец ")]),)], ), ), ); Это результат 2: здесь есть родительский column(), занимающий всю вертикальную высоту 100%, но внутренний column() этого не делал. внутренний Column() занимал место только для того, чтобы обернуть свой единственный дочерний элемент, как если бы для свойства mainAxisSize было установлено минимальное значение. Чтобы синий прямоугольник расширялся до самого низа, как красный, нам нужно обернуть Container() с помощью Expanded() .
Так почему же здесь два поведения столбца, хотя для свойства mainAxisSize установлено значение MainAxisSize.max, но символ, который они отображают, отличается. Объясните подробно, мне бы хотелось прочитать все ваши комментарии.
Оба представленных здесь кода работают нормально, но я не могу понять, что происходит.
Scaffold( AppBar: AppBar( Цвет фона: Цвета.желтый, title: const Text('Счетчик кликов Flutter Demo'), ), тело: Контейнер( цвет: Цвета.красный, ребенок: Столбец( дети: [Текст("привет")], ), ), ); Это имеет такой вывод, где вся вертикальная ось — это column(), где я предполагаю, что, поскольку mainAxisSize:MainAxisSize.max является свойством по умолчанию для < code>column(), поэтому он занимал 100% пространства по вертикальной оси с шириной его child . Но для этой части кода:
Scaffold( AppBar: AppBar( Цвет фона: Цвета.желтый, title: const Text('Счетчик кликов Flutter Demo'), ), тело: Контейнер( цвет: Цвета.красный, ребенок: Столбец( дети: [Text("родительский столбец"), Контейнер( цвет: Цвета.синий, дочерний элемент: const Column(дети: [Text("дочерний столбец ")]),)], ), ), ); Это результат 2: здесь есть родительский column(), занимающий всю вертикальную высоту 100%, но внутренний column() этого не делал. внутренний Column() занимал место только для того, чтобы обернуть свой единственный дочерний элемент, как если бы для свойства mainAxisSize было установлено минимальное значение. Чтобы синий прямоугольник расширялся до самого низа, как красный, нам нужно обернуть Container() с помощью Expanded() .
Так почему же здесь два поведения столбца, хотя для свойства mainAxisSize установлено значение MainAxisSize.max, но символ, который они отображают, отличается. Объясните подробно, мне бы хотелось прочитать все ваши комментарии.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение