gpt4 book ai didi

flutter - SliverAppBar flexibleSpace不应在向上滚动显示

转载 作者:行者123 更新时间:2023-12-03 02:43:06 26 4
gpt4 key购买 nike

我在SliverAppBar中使用flexibleSpace,其中包含以下内容: float :true,固定:false,捕捉:true:当我向上滚动时。它显示AppBar和flexibleSpace空间https://flutter.github.io/assets-for-api-docs/assets/material/app_bar_floating_snap.mp4。但是我想要的是,当用户滚动底部时,它应该隐藏应用程序栏和flexibleSpace,而当用户向上滚动时,它应该仅显示appBar。直到滚动到达页面的第一页,它也应该显示flexibleSpace。

最佳答案

据我所知,SilverAppBar中没有您想要的便利设置。
它可能不是最佳解决方案。但是它可以在某些情况下工作:

  • 在SliverAppBar()中设置floating: truepinned: false(默认为false)
  • 使用滚动位置控制expandedHeight

  • ScrollController _scrollController;
    bool _top;
    double _expandH;
    double _collapseH;

    @override
    void initState() {
    _collapseH = 50;
    _expandH = 150;
    _top = false;
    _scrollController = ScrollController()..addListener(() {
    if(_scrollController.offset == 0 && !_top) {
    setState(() {
    _top = true;
    _scrollController.position.correctPixels(_expandH-_collapseH);
    });
    }else if(_top && _scrollController.offset > _expandH-_collapseH) {
    setState(() {
    _top = false;
    _scrollController.position.correctPixels(0);
    });
    }
    });
    super.initState();
    }

    ...

    CustomScrollView(
    controller: _scrollController,
    slivers: [
    SliverAppBar(
    floating: true,
    // pinned: false,
    expandedHeight:_top ? _expandH: _collapseH,
    ...

    关于flutter - SliverAppBar flexibleSpace不应在向上滚动显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64475326/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com