Flutter:如何避免 ListView 动态滚动(或改变其物理特性)

lbo*_*van 7 flutter flutter-animation

我有一个ListView小部件,我想允许它可滚动或不基于某些逻辑。

NeverScrollableScrollPhysics阻止滚动,但由于物理参数是最终的,我之后无法更改它。

我想使用状态来使用不同的物理重建 ListView,但我想重建整个 ListView 是一个相当繁重的操作。

有谁知道或如何处理这种情况,在其他用户操作完成之前用户不应滚动 ListView?

Leo*_*rea 8

您可以在 ListView 中有条件地应用物理:

shrinkWrap: true,
physics: !isScrolable? const NeverScrollableScrollPhysics(): 
         const AlwaysScrollableScrollPhysics(),
Run Code Online (Sandbox Code Playgroud)

然后,当您需要时,您可以更改状态并修改变量的值。


setState(() {
    isScrolable = !isScrolable;
}); 

Run Code Online (Sandbox Code Playgroud)