Просто сделайте то же самое, что вы сделали с TabController
...
Поместите его в локальную переменную:
TabController _tabController;
ScrollController _scrollController;
int _selectedIndex = 0;
@override
void initState() {
_tabController = TabController(vsync: this, length: 2);
_scrollController = ScrollController(keepScrollOffset: true);
super.initState();
}
Затем используйте его в NestedScrollView`
@override
Widget build(BuildContext context) {
return Scaffold(
body: DefaultTabController(
length: _tabController.length,
child: NestedScrollView(
controller: _scrollController,
key: PageStorageKey(widget.title),
...
Затем обновите позицию при нажатии:
void _onItemTapped(int index) {
_scrollController.jumpTo(0);
setState(() {
_selectedIndex = index;
_tabController.index = index;
});
}