以编程方式防止滚动列表视图颤动
Posted
技术标签:
【中文标题】以编程方式防止滚动列表视图颤动【英文标题】:programmatically prevent scroll listview flutter 【发布时间】:2020-06-11 04:49:57 【问题描述】:我在 ListView 中嵌套了 ListView。 所以我想以编程方式禁用子 ListView 的滚动。 怎么做。 谢谢,
【问题讨论】:
【参考方案1】:您可以通过使用物理学来防止它:例如NeverScrollableScrollPhysics()
Expanded(
child: ListView.builder(
physics: NeverScrollableScrollPhysics(), <-----
scrollDirection: Axis.horizontal,
itemCount: status == false ? list.length : 5,
itemBuilder: (ctx, i) => ChangeNotifierProvider.value(
value: list[i], child: ListItem()),
),
【讨论】:
【参考方案2】:如果您想以编程方式设置它,请使用 setState() 来更新物理类型,如下所示:
ScrollPhysics physics = AlwaysScrollableScrollPhysics();
return Stack(
children: [
ListView(
physics: physics,
),
RaisedButton(
child: Text("Disable scrolling"),
onPressed: ()
setState(()
if(physics is AlwaysScrollableScrollPhysics)
physics = NeverScrollableScrollPhysics();
else
physics = AlwaysScrollableScrollPhysics();
);
,
),
]
);
【讨论】:
【参考方案3】:您需要在嵌套列表视图中设置此“物理”属性值“NeverScrollableScrollPhysics”。
示例:
ListView.builder(
physics: NeverScrollableScrollPhysics(),
itemBuilder: ()
),
【讨论】:
以上是关于以编程方式防止滚动列表视图颤动的主要内容,如果未能解决你的问题,请参考以下文章