<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Flutter實現捲動選擇數位的具體程式碼,供大家參考,具體內容如下
本來想百度查的,結果沒查到,只有自己寫,順便記錄一下,加深印象
頁面需求要使用者輸入頁碼,之前選擇的是使用TextField。後來覺得用showDialog彈出選項,讓使用者自己選擇。類似這樣的:
確定了樣式就開始寫吧。關於Dialog的選擇,我用的是SimpleDialog,有對細節上有要求的可以自己自定義一個。
showDialog( context: context, barrierDismissible: true, builder: (ctx){ return SimpleDialog( title: Text('頁碼選擇'), contentPadding: EdgeInsets.zero, children: [ PageChoose(changeBookIdCallBack: (pageNum2){ setState(() { pageNum = pageNum2; }); }), Divider(height: 1,), FlatButton( child: Text('取消'), onPressed: () { Navigator.of(context).pop(); }, ), Divider(height: 1,), FlatButton( child: Text('確認'), onPressed: () { })); }, ), ], ); } );
我將contentPadding設定為零,看著舒服點。目前已經完成一部分了,還差中間的捲動選擇數位。
新建檔案,建立一個StatelessWidget元件,這裡不需要用到StatefulWidget,用不到setState。捲動數位我首先想到的是PageView元件,將它的scrollDirection變為Axis.vertical,就可以實現上下的滑動,這裡我需要預覽當前前後兩個數位,在設定PageController的時候就需要給viewportFraction值,這裡我給了0.3,具體看你給元件的寬高。
class PageChoose extends StatelessWidget { PageChoose({this.changeBookIdCallBack}); final ValueChanged<int> changeBookIdCallBack; final PageController pagecontroller = new PageController(viewportFraction: 0.3,initialPage: 1); @override Widget build(BuildContext context) { return Center( child: Container( alignment: Alignment.center, height: 150, width: 60, child: Stack( children: [ Center( child: Container( height: 50, decoration: BoxDecoration( border: Border(top: BorderSide(width: 0.5),bottom: BorderSide(width: 0.5)) ), ), ), PageView.builder( itemCount: 50, controller: pagecontroller, scrollDirection: Axis.vertical, pageSnapping: true, physics: AlwaysScrollableScrollPhysics(), itemBuilder: (ctx ,index ){ return Center(child: Text('$index',style: TextStyle(fontSize: 20),)); }, onPageChanged: (int index) { changeBookIdCallBack(index); }, ), ], ), ), ); } }
我還給元件加了子傳父的方法,這樣在選完後直接傳值給父頁面。這樣就完成了。
總結
希望可以幫到初學Flutter的同學。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45