国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

第二百六十四回

這篇具有很好參考價(jià)值的文章主要介紹了第二百六十四回。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


我們?cè)谏弦徽禄刂薪榻B了SliverPadding組件相關(guān)的內(nèi)容,本章回中將介紹Sliver綜合示例.閑話休提,讓我們一起Talk Flutter吧。

概念介紹

我們?cè)谇懊娴恼禄刂薪榻B了各種Sliver相關(guān)的組件:SliverList,SliverGrid,SliverAppBar和SliverPadding,本章回將綜合使用它們。下面是示例程序的
運(yùn)行效果圖。不過(guò)在使用之前還需要介紹一個(gè)新組件:CustomScrollView。該組件相當(dāng)于一個(gè)粘合劑,它可以把各個(gè)Sliver組件組合在一起。010slivers

使用方法

和其它組件類似,該組件提供了相關(guān)的屬性來(lái)控制自己,
下面是該組件中常用的屬性,掌握這些屬性后就可以使用該組件了。

  • scrollDirection屬性:主要用來(lái)控制列表中滾動(dòng)方向;
  • controller屬性:主要用來(lái)控制某個(gè)列表的位置;
  • slivers屬性:主要用來(lái)存放Sliver相關(guān)的組件,它的用法類似Column組件中的children屬性;
    介紹完這些常用屬性后,我們將在后面的小節(jié)中通過(guò)具體的示例代碼來(lái)演示它的使用方法。

示例代碼

CustomScrollView(
  slivers: [
    SliverAppBar(
      title: const Text('Title of SliverAppBar'),
      backgroundColor: Colors.purpleAccent,
      ///關(guān)閉和展開時(shí)的高度
      collapsedHeight: 60,
      expandedHeight: 300,

      ///appBar空間擴(kuò)展后顯示的內(nèi)容
      flexibleSpace: FlexibleSpaceBar(
        ///這個(gè)title在appBar的最下方,可以不設(shè)定,縮小后它會(huì)和SliverAppBar的title重合
        title: const Text('title of FlexibleSpaceBar'),
        background: Container(
          decoration: const BoxDecoration(
            image:DecorationImage(
              opacity: 0.8,
              image: AssetImage("images/ex.png"),
              fit: BoxFit.fill,
            ),
          ),
          ///擴(kuò)展空間中主要顯示的內(nèi)容
          child: const Center(child: Text('child of container')),
        ),
        centerTitle: true,
        ///拉伸和折疊時(shí)的樣式,效果不是很明顯
        collapseMode: CollapseMode.pin,
        stretchModes: const [
          StretchMode.zoomBackground,
          StretchMode.blurBackground,
          StretchMode.fadeTitle,
        ],
      ),
    ),
    ///SliverAppBar下方顯示的內(nèi)容,這個(gè)需要和SliverAppBar一起添加,否則不會(huì)出現(xiàn)滑動(dòng)效果
    ///這個(gè)只是一個(gè)簡(jiǎn)單的SliverList,用來(lái)配合SliverAppBar使用,真正的介紹在下面的程序中
    SliverList(
      delegate: SliverChildListDelegate(
      // List.generate(40, (index) => Icon(Icons.recommend),),
      List.generate(5, (index) => Text('Item ${index+1}'),),
      ),
    ),
    ///SliverGrid和工廠方法
    SliverGrid.count(
      ///交叉軸顯示內(nèi)容的數(shù)量,這里相當(dāng)于3列
      crossAxisCount: 3,
      ///主軸上顯示內(nèi)容的空間設(shè)置,相當(dāng)于行距
      mainAxisSpacing: 10,
      ///交叉軸上顯示內(nèi)容的空間設(shè)置,相當(dāng)于列距
      crossAxisSpacing: 10,
      childAspectRatio: 1.2,
      ///Grid中顯示的內(nèi)容,一共9個(gè)自動(dòng)換行,分3行顯示
      children:List.generate(9, (index) {
        return Container(
          alignment: Alignment.center,
          ///使用固定顏色和隨機(jī)顏色
          // color: Colors.redAccent,
          // color:Colors.primaries[index%5],
          ///修改為圓角,顏色移動(dòng)到圓角中
          decoration: BoxDecoration(
            color: Colors.primaries[index%5],
            borderRadius: BorderRadius.circular(20),
          ),
          child: Text('item: $index'),
        );
      }).toList(),
    ),
    ///不使用工廠方法,直接使用SliverGrid的構(gòu)造方法
    SliverGrid(
      ///Grid中顯示的內(nèi)容,可以使用BuilderDelete直接創(chuàng)建顯示內(nèi)容,或者使用已經(jīng)有的list
      delegate: SliverChildBuilderDelegate((context,index){
        return const Icon(Icons.face_3_outlined); },
      childCount: 20,
      ),
      ///配置Grid的相關(guān)屬性,
      gridDelegate:const SliverGridDelegateWithFixedCrossAxisCount(
        ///主軸上顯示內(nèi)容的空間設(shè)置,相當(dāng)于行距
        mainAxisExtent: 20,///這個(gè)值不能小于顯示內(nèi)容,否則最后一行的內(nèi)容會(huì)被遮擋
        mainAxisSpacing: 20,
        ///交叉軸顯示內(nèi)容的數(shù)量,這里相當(dāng)于4列
        crossAxisCount: 4,
        ///交叉軸上顯示內(nèi)容的空間設(shè)置
        crossAxisSpacing: 20,
        ///顯示內(nèi)容的寬高比
        childAspectRatio: 1.2,
      ),
    ),
    ///不使用工廠方法,直接使用SliverGrid的構(gòu)造方法,和上一個(gè)類似,只是創(chuàng)建顯示內(nèi)容的方法不同
    SliverGrid(
      ///Grid中顯示的內(nèi)容,可以使用BuilderDelete直接創(chuàng)建顯示內(nèi)容,或者使用已經(jīng)有的list
      delegate: SliverChildListDelegate(
        List.generate(20,
              (index) => const Icon(Icons.camera,color: Colors.blue,),),
      ),
      ///配置Grid的相關(guān)屬性,同上。不同之處在于交叉軸顯示內(nèi)容的數(shù)量不固定,而是與空間有關(guān)
      gridDelegate:const SliverGridDelegateWithMaxCrossAxisExtent(
        maxCrossAxisExtent: 40,
        mainAxisExtent: 40,
        mainAxisSpacing: 20,
        crossAxisSpacing: 5,
        childAspectRatio: 1.6,
      ),
    ),
    ///SliverList,可以理解為對(duì)ListView的封裝,以便用于Sliver中創(chuàng)建delegate對(duì)象,使用builder方法。
    SliverList(
      delegate: SliverChildBuilderDelegate((context,index){
        return Container(
          height: 60,
          alignment: Alignment.center,
          child: Text('This is ${index+1} item'),
        );
      },
        ///list的數(shù)量
        childCount:5,
      ),
    ),
    ///與上面的SliverList類似,只是不有創(chuàng)建delegate對(duì)象,而是直接使用現(xiàn)成的list對(duì)象
    SliverList(
      delegate: SliverChildListDelegate(
        List.generate(5, (index) => const Icon(Icons.add),),
      ) ,
    ),
    ///調(diào)整顯示內(nèi)容的邊距,在上下左右四個(gè)方向添加,SliverList,SliverList效果不明顯
    SliverPadding(
     ///在上下左右四個(gè)方向上添加邊距
     // padding: EdgeInsets.only(left: 10,right: 10),
     padding: const EdgeInsets.all(10),
     sliver:SliverList(
       delegate:SliverChildListDelegate(
         List.generate(5,
               (index) => Container(
                 color: Colors.grey,
                 child: Text('Item ${index+1}'),
               ),
         ),
       ) ,
     ) ,
    ),
    ///調(diào)整顯示內(nèi)容的邊距,在上下左右四個(gè)方向添加,配合Grid內(nèi)部的邊距效果比較明顯
    SliverPadding(
      padding: const EdgeInsets.all(10),
      sliver: SliverGrid.count(
        mainAxisSpacing: 10,
        crossAxisCount: 4,
        crossAxisSpacing: 10,
        children: List.generate(9, (index) => Container(
          alignment: Alignment.center,
          color: Colors.primaries[index%5],
          child: Text('Item ${index+1}'),
        ),) ,
      ),
    ),
  ],
),

上面是的代碼中使用了前面章回中介紹過(guò)的所有與Sliver相關(guān)的組件,整個(gè)界面的外層使用CustomScollView當(dāng)作容器,容器里的組件全部是SliVer相關(guān)的組件,最
上方是SliverAppBar組件,它下面是SliverList和SliverGrid組件,向上滑動(dòng)時(shí)SliverBar會(huì)被折疊,SliverList和SliverGrid會(huì)跟著一起滾動(dòng),不過(guò)它們
是做為一個(gè)整體來(lái)滾動(dòng)而不是像ListView中一個(gè)條目,一個(gè)條目地滾動(dòng)。具體的滾動(dòng)效果可以看開篇的程序運(yùn)行效果圖。這個(gè)程序中包含的內(nèi)容比較多,單是SliverList
就有好幾個(gè),大家可以對(duì)比著看,建議大家自己動(dòng)手去實(shí)踐,這樣可以真正體會(huì)到SliverList等組件的功能,以及它們包含的細(xì)節(jié)。
看官們,與"Sliver綜合示例"相關(guān)的內(nèi)容就介紹到這里,歡迎大家在評(píng)論區(qū)交流與討論!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-802289.html

到了這里,關(guān)于第二百六十四回的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 冥想第九百六十二天

    1.周二,太忙了,來(lái)補(bǔ)日記,被客戶批了,因?yàn)橐粋€(gè)case沒有測(cè)到,不過(guò)度譴責(zé)自己,提高就好。 2.下班跑了6公里很舒服。毫無(wú)壓力。心率平穩(wěn)并且低。 3.感謝父母,感謝朋友,感謝家人,感謝不斷進(jìn)步的自己。

    2024年02月06日
    瀏覽(18)
  • 每天一個(gè)數(shù)據(jù)分析題(一百六十)

    以下關(guān)于代碼片段(使用sklearn)的使用和PCA(主成分分析)的描述中,哪項(xiàng)是正確的? A. preprocessing.scale(data)用于對(duì)數(shù)據(jù)進(jìn)行歸一化處理,確保PCA分析前各特征處于同一量級(jí)。 B. PCA(n_components=9)將數(shù)據(jù)降維了9個(gè)主成分。 C. pca.explained_variance_輸出的是降維后各主成分的方差。

    2024年02月20日
    瀏覽(23)
  • JAVA面試題分享一百六十三:Kafka如何實(shí)現(xiàn)延時(shí)推送?

    JAVA面試題分享一百六十三:Kafka如何實(shí)現(xiàn)延時(shí)推送?

    目錄 一、延時(shí)隊(duì)列定義 二、技術(shù)實(shí)現(xiàn)方案 1. Redis 2. Kafka 3. RabbitMQ 4. RocketMQ 三、Kafka延時(shí)隊(duì)列背景 四、Kafka延時(shí)隊(duì)列實(shí)現(xiàn)思路 六、Kafka延時(shí)隊(duì)列架構(gòu)圖 七、kafka延時(shí)任務(wù)代碼實(shí)現(xiàn) 1. KafkaDelayQueue:Kafka延遲隊(duì)列 2. KafkaDelayQueueFactory:Kafka延遲隊(duì)列工廠 3. KafkaPollListener:Kafka延遲隊(duì)

    2024年02月04日
    瀏覽(23)
  • JAVA面試題分享一百六十二:Kafka消息重復(fù)消費(fèi)問(wèn)題?

    消息重復(fù)消費(fèi)的根本原因都在于:已經(jīng)消費(fèi)了數(shù)據(jù),但是offset沒有成功提交。 其中很大一部分原因在于發(fā)生了再均衡。 1)消費(fèi)者宕機(jī)、重啟等。導(dǎo)致消息已經(jīng)消費(fèi)但是沒有提交offset。 2)消費(fèi)者使用自動(dòng)提交offset,但當(dāng)還沒有提交的時(shí)候,有新的消費(fèi)者加入或者移除,發(fā)生

    2024年02月03日
    瀏覽(19)
  • 第九十四回 如何打造一個(gè)網(wǎng)絡(luò)框架

    我們?cè)谏弦徽禄刂薪榻B了\\\"如何mock數(shù)據(jù)\\\"相關(guān)的內(nèi)容,本章回中將介紹如 何打造一個(gè)網(wǎng)絡(luò)框架 閑話休提,讓我們一起Talk Flutter吧。 最近在項(xiàng)目中使用dio處理網(wǎng)絡(luò)相關(guān)的內(nèi)容,有些地方的代碼不能利用,有些地方的代碼耦合度比較高,因此準(zhǔn)備在dio上面封裝一層網(wǎng)絡(luò)層,這些可

    2024年02月15日
    瀏覽(91)
  • JAVA面試題分享五百六十五:為啥Redis用哈希槽,不用一致性哈希?

    JAVA面試題分享五百六十五:為啥Redis用哈希槽,不用一致性哈希?

    無(wú)論是哈希槽,還是一致性hash,都屬于hash取模數(shù)據(jù)分片。 先從經(jīng)典的hash取模數(shù)據(jù)分片說(shuō)起 假如 Redis集群的節(jié)點(diǎn)數(shù)為3個(gè),使用經(jīng)典的hash取模算法進(jìn)行數(shù)據(jù)分片,實(shí)際上就是一個(gè)節(jié)點(diǎn)一個(gè)數(shù)據(jù)分片,分為3片而已。 每次請(qǐng)求使用 hash(key) % 3 的方式計(jì)算對(duì)應(yīng)的節(jié)點(diǎn),或者進(jìn)行

    2024年04月16日
    瀏覽(19)
  • 一百六十九、Hadoop——Hadoop退出NameNode安全模式與查看磁盤空間詳情(踩坑,附截圖)

    一百六十九、Hadoop——Hadoop退出NameNode安全模式與查看磁盤空間詳情(踩坑,附截圖)

    在海豚跑定時(shí)跑kettle的從Kafka到HDFS的任務(wù)時(shí),由于Linux服務(wù)器的某個(gè)文件磁盤空間滿了,導(dǎo)致Hadoop的NodeName進(jìn)入安全模式,此時(shí)光執(zhí)行 hdfs dfsadmin -safemode leave命令語(yǔ)句沒有效果( 雖然顯示Safe mode is OFF,但沒效果,一旦執(zhí)行還是報(bào)錯(cuò) ) Caused by: org.apache.hadoop.ipc.RemoteException(org

    2024年02月10日
    瀏覽(21)
  • 一百六十、Kettle——Linux上安裝的Kettle9.2.0連接Hive3.1.2

    一百六十、Kettle——Linux上安裝的Kettle9.2.0連接Hive3.1.2

    Kettle9.2.0在Linux上安裝好后,需要與Hive3.1.2數(shù)據(jù)庫(kù)建立連接 之前已經(jīng)在本地上用kettle9.2.0連上Hive3.1.2 kettle9.2.0安裝包網(wǎng)盤鏈接 鏈接:https://pan.baidu.com/s/15Zq9wNDwyMnc3qFVxYOMXw?pwd=zwae? 提取碼:zwae 1、Hive312的lib里面MySQL驅(qū)動(dòng)包的版本是mysql-connector-java-5.1.37.jar 2、Kettle9.2里MySQL驅(qū)動(dòng)包的

    2024年02月12日
    瀏覽(25)
  • 一起Talk Android吧(第五百四十回:ImageView的縮放)

    各位看官們大家好,上一回中咱們說(shuō)的例子是\\\"RxJava中的總結(jié)\\\",本章回中介紹的例子是\\\"I mageView的縮放 \\\"。閑話休提,言歸正轉(zhuǎn),讓我們一起Talk Android吧! 通常情況下ImageView組件主要用來(lái)顯示圖片,因此需要使用圖片當(dāng)作顯示內(nèi)容,這個(gè)可以通過(guò) ImageView 的src屬性來(lái)設(shè)置被顯示的

    2023年04月09日
    瀏覽(24)
  • 一百六十八、Kettle——用海豚調(diào)度器定時(shí)調(diào)度從Kafka到HDFS的任務(wù)腳本(持續(xù)更新追蹤、持續(xù)完善)

    一百六十八、Kettle——用海豚調(diào)度器定時(shí)調(diào)度從Kafka到HDFS的任務(wù)腳本(持續(xù)更新追蹤、持續(xù)完善)

    在實(shí)際項(xiàng)目中,從Kafka到HDFS的數(shù)據(jù)是每天自動(dòng)生成一個(gè)文件,按日期區(qū)分。而且Kafka在不斷生產(chǎn)數(shù)據(jù),因此看看kettle是不是需要時(shí)刻運(yùn)行?能不能按照每日自動(dòng)生成數(shù)據(jù)文件? 為了測(cè)試實(shí)際項(xiàng)目中的海豚定時(shí)調(diào)度從Kafka到HDFS的kettle任務(wù)情況,特地提前跑一下海豚定時(shí)調(diào)度這個(gè)

    2024年02月10日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包