diff --git a/lib/src/internal/widgets/docking_item_widget.dart b/lib/src/internal/widgets/docking_item_widget.dart index 7548149..11c3241 100644 --- a/lib/src/internal/widgets/docking_item_widget.dart +++ b/lib/src/internal/widgets/docking_item_widget.dart @@ -10,6 +10,7 @@ import 'package:docking/src/on_item_selection.dart'; import 'package:docking/src/theme/docking_theme.dart'; import 'package:docking/src/theme/docking_theme_data.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; import 'package:meta/meta.dart'; import 'package:tabbed_view/tabbed_view.dart'; @@ -139,8 +140,12 @@ class DockingItemWidgetState extends State void _updateActiveDropPosition(DropPosition? dropPosition) { if (_activeDropPosition != dropPosition) { - setState(() { - _activeDropPosition = dropPosition; + SchedulerBinding.instance.addPostFrameCallback((_) { + if (mounted) { + setState(() { + _activeDropPosition = dropPosition; + }); + } }); } } diff --git a/lib/src/internal/widgets/docking_tabs_widget.dart b/lib/src/internal/widgets/docking_tabs_widget.dart index a070476..cfbafc7 100644 --- a/lib/src/internal/widgets/docking_tabs_widget.dart +++ b/lib/src/internal/widgets/docking_tabs_widget.dart @@ -12,6 +12,7 @@ import 'package:docking/src/on_item_selection.dart'; import 'package:docking/src/theme/docking_theme.dart'; import 'package:docking/src/theme/docking_theme_data.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; import 'package:tabbed_view/tabbed_view.dart'; /// Represents a widget for [DockingTabs]. @@ -129,8 +130,12 @@ class DockingTabsWidgetState extends State void _updateActiveDropPosition(DropPosition? dropPosition) { if (_activeDropPosition != dropPosition) { - setState(() { - _activeDropPosition = dropPosition; + SchedulerBinding.instance.addPostFrameCallback((_) { + if (mounted) { + setState(() { + _activeDropPosition = dropPosition; + }); + } }); } }