我有一个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/

10-08 21:39