<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們通常會用 toast(也叫吐司)來顯示提示資訊,例如網路請求錯誤,校驗錯誤等等。大多數 App的 toast 都很簡單,簡單的半透明黑底加上白色文字草草了事,比如下面這種.
說實話,這種toast 的體驗很糟糕。假設是新手使用者,他們並不知道 toast 從哪裡出來,等出現錯誤的時候,閃現出來的時候,可能還沒抓住內容的重點就消失了(尤其是想截圖抓錯誤的時候,更抓狂)。這是因為一個是這種 toast 一般比較小,而是動效非常簡單,用來提醒其實並不是特別好。怎麼破?本篇來給大家介紹一個非常有趣的 toast 元件 —— motion_toast。
從名字就知道,motion_toast 是支援動效的,除此之外,它的顏值還很高,下面是它的一個範例動圖,仔細看那個小鬧鐘圖示,是在跳動的哦。這種提醒效果比起常用的 toast 來說醒目多了,也更有趣味性。
下面我們看看 motion_toast 的特性:
可以看到,除了能夠開箱即用之外,我們還可以通過自定義來豐富 toast 的樣式,使之更有趣。
介紹完了,我們來一些典型的範例吧,首先在 pubspec.yaml 中新增依賴motion_toast: ^2.0.0
(最低Dart版本需要2.12)。
只需要一行程式碼搞定!其他引數在 success 的命名構造方法中預設了,因此使用非常簡單。
MotionToast.success(description: '操作成功!').show(context);
內建的提醒也支援我們修改預設引數進行樣式調整,如標題、位置、寬度、顯示位置、動畫曲線等等。
// 錯誤提示 MotionToast.error( description: '發生錯誤!', width: 300, position: MOTION_TOAST_POSITION.center, ).show(context); //刪除提示 MotionToast.delete( description: '已成功刪除', position: MOTION_TOAST_POSITION.bottom, animationType: ANIMATION.fromLeft, animationCurve: Curves.bounceIn, ).show(context); // 資訊提醒(帶標題) MotionToast.info( description: '這是一條提醒,可能會有很多行。toast 會自動調整高度顯示', title: '提醒', titleStyle: TextStyle(fontWeight: FontWeight.bold), position: MOTION_TOAST_POSITION.bottom, animationType: ANIMATION.fromBottom, animationCurve: Curves.linear, dismissable: true, ).show(context);
不過需要注意的是,一個是 dismissable
引數只對顯示位置在底部的有用,當在底部且dismissable
為 true
時,點選空白處可以讓 toast 提前消失。另外就是顯示位置 position
和 animationType
是存在某些互斥關係的。從原始碼可以看到底部顯示的時候,animationType
不能是 fromTop
,頂部顯示的時候 animationType
不能是 fromBottom
。
void _assertValidValues() { assert( (position == MOTION_TOAST_POSITION.bottom && animationType != ANIMATION.fromTop) || (position == MOTION_TOAST_POSITION.top && animationType != ANIMATION.fromBottom) || (position == MOTION_TOAST_POSITION.center), ); }
自定義其實就是使用 MotionToast 構建一個範例,其中,description
,icon
和 primaryColor
引數是必傳的。自定義的引數很多,使用的時候建議看一下原始碼註釋。
MotionToast( description: '這是自定義 toast', icon: Icons.flag, primaryColor: Colors.blue, secondaryColor: Colors.green[300], descriptionStyle: TextStyle( color: Colors.white, ), position: MOTION_TOAST_POSITION.center, animationType: ANIMATION.fromRight, animationCurve: Curves.easeIn, ).show(context);
下面對自定義的一些引數做一下解釋:
icon
:圖示,IconData 類,可以使用系統字型圖示;primaryColor
:主顏色,也就是大的背景底色;secondaryColor
:輔助色,也就是圖示和旁邊的豎條的顏色;descriptionStyle
:toast 文字的字型樣式;title
:標題文字;titleStyle
:標題文字樣式;toastDuration
:顯示時長;backgroundType
:背景型別,列舉值,共三個可選值,transparent
,solid
和 lighter
,預設是 lighter
。lighter
其實就是加了一層白色底色,然後再將原先的背景色(主色調)加上一定的透明度疊加到上面,所以看起來會泛白。onClose
:關閉時回撥,可以用於出現多個錯誤時依次展示,或者是關閉後觸發某些動作,如返回上一頁。看完之後,是不是覺得以前的 toast 太醜了?用 motion_toast來一個更有趣的吧。另外,整個 motion_toast 的原始碼並不多,有興趣的可以讀讀原始碼,瞭解一下toast 的實現也是不錯的。
到此這篇關於詳解Android中motion_toast的使用的文章就介紹到這了,更多相關Android motion_toast內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援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