您好,登錄后才能下訂單哦!
這篇文章主要介紹“Flutter開發怎么實現底部留言板”,在日常操作中,相信很多人在Flutter開發怎么實現底部留言板問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Flutter開發怎么實現底部留言板”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
其實這個技術就是運用了動畫這個功能封裝實現的
初始化封裝
/*初始化狀態*/ initState() { super.initState(); /*創建動畫控制類對象*/ controller = new AnimationController( duration: const Duration(milliseconds: 1000), vsync: this); /*創建補間對象*/ tween = new Tween(begin: 0.0, end: 1.0) .animate(controller) //返回Animation對象 ..addListener(() { //添加監聽 setState(() { Provide.value<IndexProvide>(context).changHeight(tween.value); // print(tween.value); //打印補間插值 }); }); // controller.forward(); //執行動畫 }
import 'package:flutter/material.dart'; void main(){ runApp( MaterialApp( debugShowCheckedModeBanner: false, home: cityContent(), ) ); } class cityContent extends StatefulWidget { cityContent({Key key}) : super(key: key); _cityContentState createState() => _cityContentState(); } class _cityContentState extends State<cityContent> with SingleTickerProviderStateMixin{ Animation<double> tween; AnimationController controller; /*初始化狀態*/ initState() { super.initState(); /*創建動畫控制類對象*/ controller = new AnimationController( duration: const Duration(milliseconds: 1000), vsync: this); /*創建補間對象*/ tween = new Tween(begin: 0.0, end: 1.0) .animate(controller) //返回Animation對象 ..addListener(() { //添加監聽 setState(() { Provide.value<IndexProvide>(context).changHeight(tween.value); // print(tween.value); //打印補間插值 }); }); // controller.forward(); //執行動畫 } @override Widget build(BuildContext context) { return Scaffold( body: Stack( children: <Widget>[ InkWell( onTap: (){ // 動作反方向執行,即關閉留言板 controller.reverse(); }, child: ListView( children: <Widget>[ Center( child: InkWell( onTap: (){ controller.forward(); //執行動畫,即打開留言板 }, child: Text( '打開底部抽屜' ), ) ), ], ), ), Positioned( bottom: 0, child: Container( margin: EdgeInsets.fromLTRB(20, 0, 20, 0), height: 400*controller.value, width: 300, color: Colors.grey.shade300, child: ListView( // physics: NeverScrollableScrollPhysics(), children: <Widget>[ Container( margin: EdgeInsets.only(left: 240), child: InkWell( onTap: (){ // 動作反方向執行,即關閉留言板 controller.reverse(); }, child: Icon(Icons.clear), ) ), Center( child: Text('留言列表'), ) ], ), ) ), ], ) ); } }
到此,關于“Flutter開發怎么實現底部留言板”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。