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

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

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