使用SliverAppBar抖动设计此动画

时间:2019-12-13 11:16:49

标签: flutter dart flutter-layout flutter-animation flutter-sliver

Here's what I want to build,但我能够实现 Output

通过以下代码,

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: NestedScrollView(
        headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled){
          return [
            SliverAppBar(
              expandedHeight: 120,
              floating: false,
              pinned: false,
              flexibleSpace: Container(
                padding: EdgeInsets.all(10),
                height: 160,
                width: double.infinity,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.end,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Align(
                        alignment: Alignment.topCenter,
                        child: Text(
                          'Hello World',
                        )),
                    Padding(
                      padding: EdgeInsets.only(top: 16),
                      child: Image.asset(
                        'assets/images/banner.png',
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ];
        },
        body: ListView.builder(),
      ),
    );
  }

我尝试使用SliverAppBar进行灵活扩展,但无法实现。


更新- 列表的第一个元素在文本字段后面。我只想在动画制作完成后滚动

First element of list is going behind text field. I want to scroll only when the animation is completed

1 个答案:

答案 0 :(得分:4)

更新的答案

OnAfterMonitorDpiChanged

procedure WMDpiChanged(var Message: TWMDpi); message WM_DPICHANGED;

enter image description here