PageView 是一個滑動視圖列表,它也是繼承至 CustomScrollView 的。
成都創(chuàng)新互聯(lián)專注于城東企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),成都商城網(wǎng)站開發(fā)。城東網(wǎng)站建設(shè)公司,為城東等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
在 PageView 里有三個構(gòu)造函數(shù):
PageView 有以下常用屬性:
基本和AppBar一樣,只是他只能在CustomScrollView中使用,應(yīng)該很常見,滑動的時候固定appbar,就需要用到他.
大部分和appbar一樣,主要說下重要的幾個:
是否將導航欄部分固定在appbar的位置.這個需求在實際中很常用. 看看效果圖.
當 pinned = false:
可以看到appbar并沒有固定在最上面,而是根據(jù)內(nèi)容劃出了界面.
當 pinned = true :
這個應(yīng)該是需求中經(jīng)常用到的效果了.
當floating = false :
當floating = true:
仔細看 ,區(qū)別是在列表整體向下滑動時,appbar開始顯示的位置不同.
當為false時 ,向下滑動時,會先降列表內(nèi)容滑動頂部,然后appbar會跟著列表滑動顯示出來.如上圖
當為true時, 向下滑動時,appbar會先跟著列表滑動顯示出來. 然后繼續(xù)列表的滑動. 如上圖
不能單獨使用要配合 ****floating 和 ****pinned
具體效果看官網(wǎng)地址
是否展開,默認false,直接看值為true的效果圖,就明白了.
可以再里面添加擴展的內(nèi)容:
通過測試發(fā)現(xiàn) **后面不是 FlexibleSpaceBar 的話, stretch = true 無效. **
和Padding一樣.子控件是 sliver 類型...
上圖中在padding中添加了一個背景色為青色的容器widget
里面可以設(shè)置不是 sliver 類型的widget。如上圖中的 padding中添加的 container
就兩個協(xié)議,一個是布局協(xié)議一個展示協(xié)議.基本和GridView一樣.也有count和extext... 不設(shè)置個數(shù)默認無數(shù)個
SliverChildListDelegate 這種方式前提是知道cell個數(shù),比較少,好搭建
SliverChildBuilderDelegate 這種方式,可以根據(jù)數(shù)組去創(chuàng)建,不知道cell個數(shù)
和listview差不多.也是協(xié)議 不設(shè)置個數(shù)默認無數(shù)個
1.webview_flutter
2.flutter_inappwebview
3.flutter_webview_plugin
筆者最近發(fā)現(xiàn)webview_flutter在Android端嵌套帶有較長的Webview頁面時偶歐會存在卡頓問題表現(xiàn)為加速向下滑動到頁面底部,然后從底部慢慢像上滑就不起作用了,體驗很不好,經(jīng)過一天的排查和實驗發(fā)現(xiàn)是webview_flutter插件自己的問題,用原生嵌套WebView并沒有問題,后來改成flutter_webview_plugin問題可以解決,但是flutter_webview_plugin插件并不是基于flutter渲染的并不能在嵌套webview的頁面自定義flutter樣式層,后來發(fā)現(xiàn)使用flutter_inappwebview插件能夠完美解決問題。推薦你們用flutter_inappwebview。
小菜在業(yè)務(wù)開發(fā)過程中會自定義 Slider 滑動條,而在自定義之前,小菜先簡單了解一下 Flutter 自帶的 Slider ;
簡單分析源碼可得, Slider 是一個有狀態(tài)的 StatefulWidget 組件,屬性也很清晰易懂,其中滑動過程中對應(yīng)的 value 值和 onChanged 回調(diào)是必須參數(shù);
value 未滑動過程中對應(yīng)的值,在 min 和 max 之間; onChanged 是在滑動過程中回調(diào),當 onChanged 為 null 或 value 所在的 min 和 max 集合范圍為空時, Slider 禁止滑動;
min 和 max 為滑動條范圍,而 value 的取值范圍是在 min 和 max 之間,無論 value 為正還是負,均需要在 min 和 max 之間;
activeColor 為滑動條已滑動過的顏色; inactiveColor 為滑動條中未滑動的顏色;兩者均可以在 SliderTheme 中設(shè)置;
label 為滑動條滑動到某一節(jié)點的標簽文案; divisions 是把 min 和 max 等分為 divisions 份數(shù);只有在 divisions 生效時, label 才會展示;
onChangeStart 和 onChangeEnd 分別對應(yīng)滑動過程中 value 值何時開始更改或何時完成更改時對應(yīng)的回調(diào);
Slider 的主題效果可以通過 SliderTheme 或 ThemeData.sliderTheme 中獲取更新,相較于 Slider 只提供已滑動和未滑動顏色效果,屬性粒度更細;
activeTrackColor 和 inactiveTrackColor 分別對應(yīng) Slider 已滑動過和未滑動過的軌道顏色;
thumbColor 對應(yīng)滑動按鈕顏色,而 overlayColor 對應(yīng)滑動按鈕映射的疊層顏色,通常設(shè)置為半透明狀態(tài); overlayShape 對應(yīng)疊層樣式;
valueIndicatorColor 對應(yīng) label 氣泡顏色; valueIndicatorShape 對應(yīng)氣泡內(nèi)文字屬性; valueIndicatorShape 對應(yīng)氣泡樣式,可以再此進行自定義氣泡;
activeTickMarkColor 對應(yīng)已選中刻度顏色; inactiveTickMarkColor 對應(yīng)未選中刻度顏色; tickMarkShape 對應(yīng)刻度樣式;
trackHeight 為 Slider 軌道高度; trackShape 對應(yīng)軌道樣式,主要再此處進行自定義樣式;
對于不可滑動狀態(tài), SliderThemeData 提供了對應(yīng)屬性;
Slider 案例源碼
小菜本節(jié)暫未涉及自定義滑動條樣式,對于底層的 Slider 了解還不夠深入;如有錯誤,請多多指導!
網(wǎng)站題目:flutter滑動頁面,flutter 導航欄滾動漸變
網(wǎng)頁路徑:http://aaarwkj.com/article2/dsigjic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、虛擬主機、網(wǎng)站收錄、企業(yè)建站、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)