我有一个SliverAppBar,它向上滚动以缩小,向下滚动以扩展。
我想在切换BottomNavigationBar时展开SliverAppBar。
在当前情况下,将保持切换前SliverAppBar的状态。
这是我的代码。
https://gist.github.com/ysknsn/d90a84a180e32de5b0691de874c65d55
任何建议都是有帮助的。
谢谢。
最佳答案
只需对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;
});
}
关于flutter - 如何以编程方式扩展SliverAppBar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56938250/