flutter組件PageView

這個組件經(jīng)常用到,而我在項目中用到最典型的是結(jié)合bottomNavigationBar 實現(xiàn)iOS的TabbarController的功能。

這篇文章我僅僅做一下pageview功能的簡單實現(xiàn),代碼如下:

Container(
  height: 200,
  child: PageView(
    children: <Widget>[
      Container(
        color: Colors.red,
      ),
      Container(
        color: Colors.blue
      )
    ],
  ),
)

效果如下:


page_view.gif

PageView的屬性還有scrollDirection、reverse、controller、physics、pageSnapping、dragStartBehavior和allowImplicitScrolling。

scrollDirection主要是滾動的方向即horizontal(水平)和vertical(垂直)兩個,默認(rèn)是horizontal的

reverse這個就是規(guī)定了children(子節(jié)點)的排序是否是倒序,默認(rèn)false。這個參數(shù)在ListView也有,一般在做IM工具聊天內(nèi)容用ListView展示時需要倒序展示的。

controller可以傳入一個PageController的實例進去,可以更好的控制PageView的各種動作,可以設(shè)置:

  • 初始頁面(initialPage)、
  • 是否保存PageView狀態(tài)(keepPage)
  • 每一個PageView子節(jié)點的內(nèi)容占改視圖的比例(viewportFraction)
  • 直接調(diào)轉(zhuǎn)到指定的PageView的子節(jié)點的方法(jumpToPage
  • 動畫(平滑移動)到指定的PageView的子節(jié)點的方法(animateToPage)
  • 到下一個PageView的子節(jié)點的方法(nextPage)
  • 到上一個PageView的子節(jié)點的方法(previousPage)
    從以上可以看出基本是普通輪播圖組件的API

physics就是設(shè)置滑動效果:

  • NeverScrollablePhysics表示設(shè)置的不可滾動
  • BouncingScrollPhysics表示滾動到底了會有彈回的效果,就是iOS的默認(rèn)交互
  • ClampingScrollPhysics表示滾動到底了就給一個效果,就是Android的默認(rèn)交互
  • FixedExtentScrollPhysics就是ios經(jīng)典選擇時間組件UIDatePicker那種交互。

pageSnapping就是設(shè)置是不是整頁滾動,默認(rèn)是true.

dragStartBehavior這個屬性是設(shè)置認(rèn)定開始拖動行為的方式,可以選擇的是down和start兩個,默認(rèn)是start. down是第一個手指按下認(rèn)定拖動開始,start是手指拖動才算開始。

allowImplicitScrolling這個屬性一般提供給視障人士使用的,默認(rèn)是fasle

這個系列的文章是根據(jù)flutter 的 Widget of the week來做的,歡迎大家斧正。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容