Flutter Row игнорирует дочерние элементы, если они переполнены
Как рассчитать или игнорировать дочерние виджеты строки, если они переполнены. Я не хочу использовать Wrap, чтобы поместить содержимое на следующую строку, я хочу скрыть переполненные дочерние виджеты
Container(
padding: EdgeInsets.only(top: 3.0),
child: Row(
children: searchResult.serviceNames
.map((service) => getServiceLabels(service))
.toList(),
),
),
PS способ обрезать переполненных детей Wrap это то, что я после
3 ответа
Если вы не хотите переносить дочерний элемент на следующую строку, вы можете поместить переполняющий виджет в
SingleChildScrollView
что позволяет
Row
в этом случае для расширения до его внешней границы без переполнения:
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Container(
padding: EdgeInsets.only(top: 3.0),
child: Row(
children: searchResult.serviceNames
.map((service) => getServiceLabels(service))
.toList(),
),
),
),
);
На самом деле, если вы хотите отображать каждый элемент целиком (то есть без обрезания посередине из-за отсутствия ширины экрана), в зависимости от размера экрана у вас есть 2 варианта:
- Рассчитайте ширину каждого элемента:
var itemWidth = MediaQuery.of(context).width // 3; // 3 is number of items you want to display
- Подсчитайте количество предметов:
var itemNumbers = MediaQuery.of(context).width // 150; // 150 is the item's width you want to display
Как сказал user10488444 , вы можете обернуть содержимое в
SingleChildScrollView
. Однако, если вы хотите ограничить прокрутку содержимого, вы можете добавить
NeverScrollablePhysics
:
return SingleChildScrollView(
physics: const NeverScrollableScrollPhysics(),
child: Column(
children: [],
),
);
Использовать OverflowBox
учебный класс:
https://docs.flutter.io/flutter/widgets/OverflowBox-class.html
Смотрите также:
RenderConstrainedOverflowBox
для получения подробной информации о том, как отображается OverflowBox.SizedOverflowBox
виджет, который имеет определенный размер, но передает свои исходные ограничения своему дочернему элементу, который затем может переполниться.UnconstrainedBox
контейнер, который пытается позволить своему дочернему элементу рисовать без ограничений.