首页 > 解决方案 > 仅在用户拉伸时显示 SliverAppBar

问题描述

我想创建一个仅在用户拉伸它时才显示的 SliverAppBar。我来了这么远:

SliverAppBar(
        expandedHeight: 100,
        backgroundColor: Color.fromRGBO(247, 246, 254, 1.0),
        elevation: 0.0,
        floating: false,
        snap: false,
        pinned: false,
        stretch: true,
        flexibleSpace: FlexibleSpaceBar(
          collapseMode: CollapseMode.parallax,
          background: Container(
            color: Colors.green,
            child: Center(
              child: Text("Refresh"),
            ),
          ),
          stretchModes: [StretchMode.zoomBackground],
        ),
        onStretchTrigger: () {
          print("todo: refresh");
          return;
        },
      ),

我拍了一张截图来展示我想做什么

标签: flutterdartappbarsliverappbar

解决方案


第一个基本解决方案可能是从initialScrollOffsetE开始expandedHeight

SliverAppBar(
  controller: ScrollController(initialScrollOffset: 100),
  expandedHeight: 100,
  backgroundColor: Color.fromRGBO(247, 246, 254, 1.0),
  elevation: 0.0,
  floating: false,
  snap: false,
  pinned: false,
  stretch: true,
  flexibleSpace: FlexibleSpaceBar(
    collapseMode: CollapseMode.parallax,
    background: Container(
      color: Colors.green,
      child: Center(
        child: Text("Refresh"),
      ),
    ),
    stretchModes: [StretchMode.zoomBackground],
  ),
  onStretchTrigger: () {
    print("todo: refresh");
    return;
  },
),

推荐阅读