我有一个SliverAppBar,它向上滚动以缩小,向下滚动以扩展。
我想在切换BottomNavigationBar时展开SliverAppBar。
在当前情况下,切换前SliverAppBar的状态保持不变。
这是我的代码。 https://gist.github.com/ysknsn/d90a84a180e32de5b0691de874c65d55
任何建议都是有帮助的。 谢谢。
答案 0 :(得分:0)
只需对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;
});
}