<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      flutter CustomScrollView多個滑動組件嵌套

      CustomScrollView是使用Sliver組件創建自定義滾動效果的滾動組件。使用場景:

      1. ListView和GridView相互嵌套場景,ListView嵌套GridView時,需要給GridView指定高度,但我們希望高度隨內容而變化(不指定),ListView和GridView使用同一個滾動效果。
      2. 一個頁面頂部是AppBar,然后是GridView,最后是ListView,這3個區域以整體來滾動,AppBar具有吸頂效果。

      CustomScrollView就像一個粘合劑,將多個組件粘合在一起,具統一的滾動效果。

      Sliver系列組件有很多,比如SliverList、SliverGrid、SliverFixedExtentList、SliverPadding、SliverAppBar等。

      #相互嵌套場景

      在實際業務場景中經常見到這樣的布局,頂部是網格布局(GridView),然后是列表布局(ListView),滾動的時候做為一個整體,此場景是無法使用GridView+ListView來實現的,而是需要使用CustomScrollView+SliverGrid+SliverList來實現,實現代碼如下:

      CustomScrollView(
        slivers: <Widget>[
          SliverGrid.count(crossAxisCount: 4,children: List.generate(8, (index){
            return Container(
              color: Colors.primaries[index%Colors.primaries.length],
              alignment: Alignment.center,
              child: Text('$index',style: TextStyle(color: Colors.white,fontSize: 20),),
            );
          }).toList(),),
          SliverList(
            delegate: SliverChildBuilderDelegate((content, index) {
              return Container(
                height: 85,
                alignment: Alignment.center,
                color: Colors.primaries[index % Colors.primaries.length],
                child: Text('$index',style: TextStyle(color: Colors.white,fontSize: 20),),
              );
            }, childCount: 25),
          )
        ],
      )

      效果如下:

       

      頂部是AppBar場景

      實際項目中頁面頂部是AppBar,然后是GridView,最后是ListView,這3個區域以整體來滾動,AppBar具有吸頂效果,此效果也是我們經常遇到的,用法如下:

      CustomScrollView(
        slivers: <Widget>[
          SliverAppBar(
            pinned: true,
            expandedHeight: 230.0,
            flexibleSpace: FlexibleSpaceBar(
              title: Text('復仇者聯盟'),
              background: Image.network(
                'http://img.haote.com/upload/20180918/2018091815372344164.jpg',
                fit: BoxFit.fitHeight,
              ),
            ),
          ),
          SliverGrid.count(crossAxisCount: 4,children: List.generate(8, (index){
            return Container(
              color: Colors.primaries[index%Colors.primaries.length],
              alignment: Alignment.center,
              child: Text('$index',style: TextStyle(color: Colors.white,fontSize: 20),),
            );
          }).toList(),),
          SliverList(
            delegate: SliverChildBuilderDelegate((content, index) {
              return Container(
                height: 85,
                alignment: Alignment.center,
                color: Colors.primaries[index % Colors.primaries.length],
                child: Text('$index',style: TextStyle(color: Colors.white,fontSize: 20),),
              );
            }, childCount: 25),
          )
        ],
      )

      效果如下:

      通過scrollDirectionreverse參數控制其滾動方向,用法如下:

      CustomScrollView(
        scrollDirection: Axis.horizontal,
        reverse: true,
        ...
      )

      scrollDirection滾動方向,分為垂直和水平方向。

      reverse參數表示反轉滾動方向,并不是垂直轉為水平,而是垂直方向滾動時,默認向下滾動,reverse設置false,滾動方向改為向上,同理水平滾動改為水平向左。

      primary設置為true時,不能設置controller,因為primarytrue時,controller使用PrimaryScrollController,這種機制帶來的好處是父組件可以控制子樹中可滾動組件的滾動行為,例如,Scaffold正是使用這種機制在iOS中實現了點擊導航欄回到頂部的功能。

      controller為滾動控制器,可以監聽滾到的位置,設置滾動的位置等,用法如下:

      _scrollController = ScrollController();
      
      //監聽滾動位置
          _scrollController.addListener((){
            print('${_scrollController.position}');
          });
          //滾動到指定位置
          _scrollController.animateTo(20.0);
      
      CustomScrollView(
          controller: _scrollController,
          ...
      ) 

      physics表示可滾動組件的物理滾動特性,具體查看ScrollPhysics

       

      posted @ 2021-01-29 18:47  淡然吖  閱讀(4952)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲尤码不卡av麻豆| 精品国偷自产在线视频99 | 高潮迭起av乳颜射后入| 西西人体大胆444WWW| 熟女精品视频一区二区三区| 老鸭窝在钱视频| 亚洲欧美人成人综合在线播放| 九九热免费精品视频在线| 日韩一区二区在线观看视频| 国产欧美日韩视频一区二区三区 | 777久久精品一区二区三区无码| 亚洲欧洲一区二区免费| 国产视频不卡一区二区三区| 性色在线视频精品| 久久99精品久久久大学生| 18女下面流水不遮图| 色综合一本到久久亚洲91| 草裙社区精品视频播放| аⅴ天堂中文在线网| 亚洲欧洲日韩精品在线| 国产午夜精品福利免费不| 无码福利一区二区三区| 丝袜a∨在线一区二区三区不卡| 九九热在线视频观看这里只有精品| 国产超碰人人做人人爰| 国产精品免费视频不卡| 人妻日韩人妻中文字幕| 久久国产精品伊人青青草| 博乐市| 丁香五月亚洲综合深深爱| 亚洲欧美人成人让影院| 国产精品一区二区三区污| 欧美成人精品三级在线观看| 狠狠色噜噜狠狠狠狠色综合久| 国产无人区码一区二区| 亚洲 欧美 唯美 国产 伦 综合| 亚洲欧美人成人让影院| 无遮挡aaaaa大片免费看| 国产福利社区一区二区| 色伦专区97中文字幕| h无码精品3d动漫在线观看|