如何以编程方式扩展SliverAppBar

时间:2019-07-08 15:32:53

标签: flutter dart flutter-sliver

我有一个SliverAppBar,它向上滚动以缩小,向下滚动以扩展。

我想在切换BottomNavigationBar时展开SliverAppBar。

在当前情况下,切换前SliverAppBar的状态保持不变。

这是我的代码。 https://gist.github.com/ysknsn/d90a84a180e32de5b0691de874c65d55

任何建议都是有帮助的。 谢谢。

1 个答案:

答案 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;
    });
  }