If you want ListView to act like Column if scrolling is not needed, meaning drag gestures are not occupied unnecessarily:
ListView(
physics: const ScrollPhysics(),
),
This works (or it does not work by default), because the default scroll physics is AlwaysScrollableScrollPhysics for the primary and vertical ScrollViews.
This is the condition in the Flutter source code:
physics =
physics ??
((primary ?? false) ||
(primary == null &&
controller == null &&
identical(scrollDirection, Axis.vertical))
? const AlwaysScrollableScrollPhysics()
: null);