私のフラッターアプリにNestedScrollView
はheaderSliverBuilder
.
SliverAppBar
このビルダーの内部は次のようになります。
SliverAppBar(
elevation: 0,
snap: true,
pinned: false,
floating: true,
forceElevated: false,
primary: false,
automaticallyImplyLeading: false,
backgroundColor: Colors.white,
expandedHeight: 65.0 + 75,
flexibleSpace: Container(
child: Column(children: <Widget>[
MyTabBar(true, 65, () {}, () {}),
Container(height: 75, color: Colors.orange)
]),
decoration: BoxDecoration(boxShadow: [
BoxShadow(
color: Colors.black26,
blurRadius: 4.0,
spreadRadius: .0,
),
], color: Colors.white),
)
)
さて、スクロールするときの動作はちょっと変です。のすべてを含む SliverAppBar 全体をスクロールしたいと思いますflexibleSpace
。しかし、これは何が起こるかです:
ヘッダーのオレンジ色の部分の下にスクロールしてから、上のタブ部分をスクロールします。そして、タブ部分が消える瞬間、オレンジ色の部分も消えます。ふぅ..
そして、スクロールダウンからバーを元に戻すときも同じです。するとオレンジ色の部分だけがその場に出てきて、上の部分が滑り込んできます。全部滑り込みたいです。
前回のフラッターの更新以降、全体の動作が変わりました。
期待される動作を実現するために何をする必要があるか知っている人はいますか?
この単純な例の完全なコードは次のとおりです: https://github.com/nietsmmar/SliverHeaderTest/tree/master/flutter_app