From 2fecffa16855eae545a6e2b0fb31e8520ebdbb62 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Wed, 22 Jul 2020 16:34:25 +0300 Subject: [PATCH] Dashboard --- lib/ui/dashboard/dashboard_screen.dart | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/ui/dashboard/dashboard_screen.dart b/lib/ui/dashboard/dashboard_screen.dart index 12ced2944..fee615254 100644 --- a/lib/ui/dashboard/dashboard_screen.dart +++ b/lib/ui/dashboard/dashboard_screen.dart @@ -62,17 +62,23 @@ class _DashboardScreenState extends State final offsetIndex = ((offset + 120) / kDashboardPanelHeight).floor(); if (_sideTabController.index != offsetIndex) { + _sideTabController.removeListener(onTabListener); _sideTabController.index = offsetIndex; + _sideTabController.addListener(onTabListener); - // This causes a bit of jank - //widget.viewModel.onEntityTypeChanged(_tabs[offsetIndex]); + widget.viewModel.onEntityTypeChanged(_tabs[offsetIndex]); } } void onTabListener() { final index = _sideTabController.index; - _scrollController.jumpTo((index.toDouble() * kDashboardPanelHeight) + 1); - widget.viewModel.onEntityTypeChanged(_tabs[index]); + final offset = _scrollController.position.pixels; + final offsetIndex = ((offset + 120) / kDashboardPanelHeight).floor(); + + if (index != offsetIndex) { + _scrollController.jumpTo((index.toDouble() * kDashboardPanelHeight) + 1); + widget.viewModel.onEntityTypeChanged(_tabs[index]); + } } @override