最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android?Flutter中SliverAppBar的使用教程

 更新時間:2023年01月31日 11:21:54   作者:程序那些事  
對于一個APP來說,肯定會有一個AppBar,這個AppBar一般包含了APP的導航信息等。在lutter已經為我們提供了一個非常強大的AppBar組件,這個組件叫做SliverAppBar。本文就來聊聊它的具體使用吧

簡介

對于一個APP來說,肯定會有一個AppBar,這個AppBar一般包含了APP的導航信息等。雖然我們可以用一個固定的組件來做為AppBar,但是這樣就會丟失很多特效,比如將AppBar固定在頂部,AppBar可以在滑動的過程中進行大小變換等。

當然這一切都不需要自己來實現,flutter已經為我們提供了一個非常強大的AppBar組件,這個組件叫做SliverAppBar。

SliverAppBar詳解

我們先來看下SliverAppBar的定義:

class SliverAppBar extends StatefulWidget

可以看到SliverAppBar是一個StatefulWidget,它里面的狀態(tài)包含的是一些配置信息,包括FloatingHeaderSnapConfiguration,OverScrollHeaderStretchConfiguration和PersistentHeaderShowOnScreenConfiguration等。

SliverAppBar可以接收很多屬性,我們接下來會講解其中最重要和最常用的幾個屬性。

1.forceElevated

forceElevated是一個bool值,表示是否顯示AppBar的陰影效果,默認值是false。

2.primary

primary使用來配置AppBar的屬性,表示AppBar是否顯示在界面的Top位置。如果設置為true,那么AppBar將會被放置在Top的位置,并且使用的高度是系統(tǒng)status bar的高度。

3.floating

floating是一個非常重要的屬性,因為對于SliverAppBar來說,當界面向遠離SliverAppBar的方向滾動的時候,SliverAppBar會隱藏或者縮寫為status bar的高度,floating的意思就是當我們向SliverAppBar滑動的時候,SliverAppBar是否浮動展示。

4.pinned

表示SliverAppBar在滾動的過程中是否會固定在界面的邊緣。

5.snap

snap是和floating一起使用的屬性,snap表示當向SliverAppBar滾動的時候,SliverAppBar是否立即展示完全。

6.automaticallyImplyLeading

automaticallyImplyLeading是用在AppBar中的屬性,表示是否需要實現leading widget。

其中最常用的就是floating,pinned和snap這幾個屬性。

另外還有一個flexibleSpace組件,他是SliverAppBar在float的時候展示的widget,通常和expandedHeight配合使用。

SliverAppBar的使用

上面講解了SliverAppBar的構造函數和基礎屬性,接下來我們通過具體的例子來講解SliverAppBar如何使用。

通常來說SliverAppBar是和CustomScrollView一起使用的,也就是說SliverAppBar會被封裝在CustomScrollView中。

CustomScrollView中除了SliverAppBar之外,還可以添加其他的sliver組件。

首先我們定義一個SliverAppBar:

SliverAppBar(
          pinned: true,
          snap: true,
          floating: true,
          expandedHeight: 200.0,
          flexibleSpace: FlexibleSpaceBar(
            title: const Text('SliverAppBar'),
            background: Image.asset("images/head.jpg"),
          ),
        ),

這里我們設置pinned,snap和floating的值都為true,然后設置了expandedHeight和flexibleSpace。

這里的flexibleSpaces是一個FlexibleSpaceBar對象,這里我們設置了title和background屬性。

接著我們需要把SliverAppBar放到CustomScrollView中進行展示。

 Widget build(BuildContext context) {
    return CustomScrollView(
      slivers: <Widget>[
        SliverAppBar(
         ...
        ),
        SliverList(
          delegate: SliverChildBuilderDelegate(
                (BuildContext context, int index) {
              return Container(
                color: index.isOdd ? Colors.white : Colors.green,
                height: 100.0,
                child: Center(
                  child: ListTile(
                    title: Text(
                      '1888888888' + index.toString(),
                      style: TextStyle(fontWeight: FontWeight.w500),
                    ),
                    leading: Icon(
                      Icons.contact_phone,
                      color: Colors.blue[500],
                    ),
                  ),
                ),
              );
            },
            childCount: 10,
          ),
        ),
      ],
    );

在SliverAppBar之外,我們還提供了一個SliverList,這里使用了SliverChildBuilderDelegate來構造10個ListTile對象。

最后運行可以得到下面的界面:

默認情況下SliverAppBar是展開狀態(tài),如果我們將下面的SliverList向上滑動,flexibleSpace就會被隱藏,我們可以得到下面的界面:

當我們向上慢慢滑動的時候,因為設置的是floating=true, 并且snap=true,所以只要向上滑動,就會展示所有的flexibleSpace:

當我們將floating設置為false的時候,只有向上滑動到頂端的時候,flexibleSpace才會全部展示出來。

總結

簡單點說,SliverAppBar就是一個在滑動中可變大小的AppBar,我們可以通過設置不同的參數來實現不同的效果。

到此這篇關于詳解Android Flutter中SliverAppBar的使用教程的文章就介紹到這了,更多相關Android Flutter SliverAppBar內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Android自定義控件ListView下拉刷新的代碼

    Android自定義控件ListView下拉刷新的代碼

    今天小編就為大家分享一篇關于Android自定義控件ListView下拉刷新的代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Android實現WebView點擊攔截跳轉原生

    Android實現WebView點擊攔截跳轉原生

    這篇文章主要介紹了Android實現WebView點擊攔截跳轉原生,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android實現截圖分享qq 微信功能

    Android實現截圖分享qq 微信功能

    在日常生活中,經常用到qq,微信截圖分享功能,今天小編通過本文給大家介紹Android實現截圖分享qq 微信功能,具體實現代碼大家參考下本文
    2017-12-12
  • Android 開發(fā)系統(tǒng)自帶語音模塊應用

    Android 開發(fā)系統(tǒng)自帶語音模塊應用

    本篇文章 主要介紹 Android 開發(fā)自帶語音模塊實例,在開發(fā)Android系統(tǒng)中會用到系統(tǒng)語音搜索模塊,這里給大家一個參考實例
    2016-07-07
  • Android實現環(huán)形進度條的實例

    Android實現環(huán)形進度條的實例

    本文通過實例代碼給大家介紹了android實現環(huán)形進度條的實例代碼,代碼簡單易懂,非常不錯,需要的朋友參考下
    2017-01-01
  • Android MonoRepo多倉和單倉的差別理論

    Android MonoRepo多倉和單倉的差別理論

    這篇文章主要為大家介紹了Android MonoRepo多倉和單倉的差別理論,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Android中使用Toast.cancel()方法優(yōu)化toast內容顯示的解決方法

    Android中使用Toast.cancel()方法優(yōu)化toast內容顯示的解決方法

    做程序員的,基本一看api就知道,用這個可以取消上一個toast的顯示,然后顯示下一個,這樣就能解決出現的問題??墒窃跍y試的過程中,發(fā)現卻沒有想象中的那么簡單,不信可以百度一下,很多很多人發(fā)現toast的cancel()方法不起作用
    2013-05-05
  • Android實現圖片左右滑動效果

    Android實現圖片左右滑動效果

    現在滑動效果用的比較多,尤其是在手機端上面,本文介紹了Android實現圖片左右滑動效果,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2016-10-10
  • Jetpack Compose 雙指拖拽實現詳解

    Jetpack Compose 雙指拖拽實現詳解

    這篇文章主要為大家介紹了Jetpack Compose 雙指拖拽實現詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Flutter基于Dart Unwrapping Multiple Optional小技巧

    Flutter基于Dart Unwrapping Multiple Optional小技巧

    這篇文章主要為大家介紹了Flutter Unwrapping Multiple Optional打開多個選項小技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論

霍山县| 宣武区| 磐安县| 安化县| 红安县| 潞西市| 清新县| 连城县| 桦川县| 库车县| 沙雅县| 石台县| 汉沽区| 富源县| 万安县| 伊通| 宣化县| 综艺| 四会市| 忻城县| 临江市| 五家渠市| 潞城市| 吉首市| 化德县| 揭东县| 玉树县| 惠州市| 普格县| 介休市| 南通市| 嘉祥县| 新乡县| 久治县| 霍城县| 吉木萨尔县| 饶河县| 上饶县| 松滋市| 北碚区| 华蓥市|