提交 b5abef3b authored 作者: shixiaochen's avatar shixiaochen

1、BaseListWidget-修复列表项刷新两次问题;

上级 946b6dda
......@@ -55,6 +55,8 @@ class _BaseListWidgetState extends State<BaseListWidget> {
StateType _stateType = StateType.loading; // 列表状态
// 禁止手动触发滚动,处理刷新过程中禁止滚动列表操作
bool _disallowScroll = false;
// 禁止手动触发滚动遮罩State,单独刷新,否则列表项会刷新两次
StateSetter? _disallowScrollState;
bool _callReloading = false; // 触发自动刷新标识
@override
......@@ -103,13 +105,17 @@ class _BaseListWidgetState extends State<BaseListWidget> {
child: buildScrollView(),
),
// 列表刷新时,增加透明遮罩,禁止滚动列表
Visibility(
visible: _disallowScroll,
child: Container(
StatefulBuilder(builder: (context, setState) {
_disallowScrollState = setState;
return Visibility(
visible: _disallowScroll,
child: Container(
color: Colors.transparent,
width: double.infinity,
height: double.infinity),
),
height: double.infinity,
),
);
}),
],
);
}
......@@ -276,7 +282,7 @@ class _BaseListWidgetState extends State<BaseListWidget> {
// 禁止手动触发滚动
void setDisallowScroll() {
if (mounted) {
setState(() {
_disallowScrollState?.call(() {
_disallowScroll = true;
});
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论