Flutter-仅当内容高度大于屏幕高度时才启用滚动



我默认在body小部件中使用ListView((或SingleChildScrollView((。因此,如果内容较少,它将滚动内容。我只想在内容大于屏幕高度时启用滚动。如果内容高度小于屏幕高度,则需要禁用滚动。

double? physicalSizeScreenHeight =
ui.window.physicalSize.height / ui.window.devicePixelRatio;
physics: physicalSizeScreenHeight <= 700 
? AlwaysScrollableScrollPhysics()
: NeverScrollableScrollPhysics(), 

它对某些设备有效,对某些设备无效取决于屏幕宽度和高度,也取决于分辨率。

在不检查"0"处的任何条件的情况下;物理学";对于始终或从不,并允许AlwaysScrollbleScrollPhysics((,然后取决于锥形高度,需要启用/禁用滚动。

任何建议都有助于解决这个问题。

事实上,SingleChildScrollView包装Column与直接使用ListView之间的(许多(区别之一是,前者仅在Column中项目过多时才会滚动。

如果这不是你所看到的,你可能会有其他布局问题。

尝试这种简单的布局SingleChildScrollView>Column>Text('Hi')并验证它是否不会滚动。

尝试使用它

final size = MediaQuery.of(context);
final apparentSize = size.size.height - size.padding.bottom - size.padding.top

最新更新