Android?Flutter實(shí)現(xiàn)評分組件的示例代碼
前言
在很多應(yīng)用中,我們都需要收集用戶的評分,比如商品滿意度、配送滿意度、應(yīng)用使用體驗(yàn)等等。評分組件通常會(huì)是下面這樣,一般滿分是5分。
不過,有時(shí)候評分組件也會(huì)有一些特殊性(都怪產(chǎn)品的想法太多)。比如要求支持0.5分的評分,比如對不同的滿意度使用不同的圖標(biāo),再比如支持滑動(dòng)的時(shí)候也能評分,甚至還要豎著排……這么多訴求,自己寫的話還挺麻煩,但是有一個(gè)組件輕松就能夠搞定,那就是 flutter_rating_bar,下面是官方的示例,可以看到完美地滿足了我們上面提到的需求。本篇我們就來看一下 flutter_rating_bar 的幾個(gè)典型的應(yīng)用示例
基礎(chǔ)應(yīng)用
先來看最簡單的“五星好評”,這可以通過 RaingBar 實(shí)現(xiàn),代碼如下:
RatingBar( ratingWidget: RatingWidget( full: Icon(Icons.star, color: Colors.yellow[600]), half: Icon(Icons.star_half, color: Colors.yellow[600]), empty: Icon(Icons.star_border, color: Colors.yellow[600]), ), onRatingUpdate: (ratingValue) { setState(() { _rating = ratingValue; }); }, glowColor: Colors.yellow[600], initialRating: _initialRating, allowHalfRating: true, itemPadding: const EdgeInsets.all(2.0), ),
我們看一下上面用到的屬性:
ratingWidget
:評分元素組件,可以定義滿格、半格(0.5分)和空的元素,這里我們使用的常見的星星圖標(biāo),實(shí)際也可以替換為圖片或其他圖標(biāo)。onRatingUpdate
:評分變化時(shí)的回調(diào)方法;glowColor
:滑動(dòng)評分時(shí)的發(fā)光效果顏色;initialRating
:默認(rèn)分值;allowHalfRating
:是否支持0.5分,默認(rèn)是否;itemPadding
:元素間距,可以調(diào)整間距顯得更協(xié)調(diào)。
除此之外,還可以定義元素的數(shù)量,最小評分,以及通過禁用交互來實(shí)現(xiàn)只讀效果。
不同分?jǐn)?shù)的圖標(biāo)不同
我們可以利用 RatingBar.builder
方法來為每一個(gè)分值構(gòu)建不同的圖標(biāo),比如低分使用苦臉,高分使用笑臉,這種評分相比普通的星星評分來說會(huì)更有趣味性一些。假設(shè)我們的應(yīng)用有吉祥物的話,可以用吉祥物的表情圖片來表示不同的評分,會(huì)更有意思一些。
上面的實(shí)現(xiàn)代碼如下,實(shí)際上就是根據(jù)不同的分值返回不同的圖標(biāo)組件,此外這里可以利用一個(gè)unratedColor
的屬性來定義未被評分的圖標(biāo)顏色。
RatingBar.builder( itemBuilder: ((context, index) { switch (index) { case 0: return const Icon( Icons.sentiment_very_dissatisfied, color: Colors.red, ); case 1: return const Icon( Icons.sentiment_dissatisfied, color: Colors.redAccent, ); case 2: return const Icon( Icons.sentiment_neutral, color: Colors.amber, ); case 3: return const Icon( Icons.sentiment_satisfied, color: Colors.lightGreen, ); case 4: return const Icon( Icons.sentiment_very_satisfied, color: Colors.green, ); default: return Container(); } }), onRatingUpdate: (ratingValue) { setState(() { _rating = ratingValue; }); }, tapOnlyMode: true, glow: false, initialRating: _initialRating, unratedColor: Colors.blueGrey, itemPadding: const EdgeInsets.all(2.0), ),
小數(shù)分值
如果評分顆粒度要更精細(xì),比如支持除了0.5以外的小數(shù),那么可以使用 RatingBarIndicator
來搞定。需要注意的是,由于分值變成了小數(shù),因此無法通過點(diǎn)擊星星圖標(biāo)實(shí)現(xiàn)分值的改變,需要依賴輸入框、滑塊組件來修改評分。下面就是利用滑塊實(shí)現(xiàn)了評分值的更改,可以看到RatingBarIndicator
還是很強(qiáng)大的,可以根據(jù)分值調(diào)整星星著色顯示的比例。
RatingBarIndicator
的使用代碼比較簡單,如下所示。我們也可以定義每一個(gè)圖標(biāo)的樣式,以及更改間距,但顯示的分值依賴于 rating
參數(shù)來設(shè)置。
RatingBarIndicator( itemBuilder: ((context, index) => Icon( Icons.star, color: Colors.yellow[600], )), itemPadding: const EdgeInsets.all(2.0), rating: _rating, ),
總結(jié)
本篇給大家介紹了 flutter_rating_bar
評分組件,這個(gè)組件使用起來簡單而且能夠覆蓋我們絕大部分的評分使用場景。如果應(yīng)用中有類似的評分功能,可以利用flutter_rating_bar
來節(jié)省我們開發(fā)的時(shí)間,而且體驗(yàn)也可以根據(jù)需要來定制。
到此這篇關(guān)于Android Flutter實(shí)現(xiàn)評分組件的示例代碼的文章就介紹到這了,更多相關(guān)Android Flutter評分組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android?studio實(shí)現(xiàn)app登錄界面
這篇文章主要為大家詳細(xì)介紹了Android?studio實(shí)現(xiàn)app登錄界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04JetPack Compose底部導(dǎo)航欄的實(shí)現(xiàn)方法詳解
開發(fā)一個(gè)新項(xiàng)目,底部導(dǎo)航欄一般是首頁的標(biāo)配,在以前的xml布局中,我們可以很輕松的是用谷歌提供的BottomNavigationView或者自定義來實(shí)現(xiàn)底部導(dǎo)航的功能,在Compose中也有也提供了一個(gè)類似的控件androidx.compose.material.BottomNavigation2022-09-09ViewPager實(shí)現(xiàn)帶引導(dǎo)小圓點(diǎn)與自動(dòng)跳轉(zhuǎn)的引導(dǎo)界面
這篇文章主要為大家詳細(xì)介紹了ViewPager實(shí)現(xiàn)帶引導(dǎo)小圓點(diǎn)與自動(dòng)跳轉(zhuǎn)的引導(dǎo)界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11Android APK應(yīng)用安裝原理解析之AndroidManifest使用PackageParser.parserPac
這篇文章主要介紹了Android APK應(yīng)用安裝原理解析之AndroidManifest使用PackageParser.parserPackage原理,結(jié)合實(shí)例形式分析了PackageManagerService調(diào)用PackageParser.parserPackage方法解析APK清單相關(guān)原理與操作技巧,需要的朋友可以參考下2017-12-12Android編程實(shí)現(xiàn)獲取新浪天氣預(yù)報(bào)數(shù)據(jù)的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)獲取新浪天氣預(yù)報(bào)數(shù)據(jù)的方法,涉及Android基于新浪接口的調(diào)用及數(shù)據(jù)處理技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android中FontMetrics的幾個(gè)屬性全面講解
下面小編就為大家?guī)硪黄狝ndroid中FontMetrics的幾個(gè)屬性全面講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11Android中ListView + CheckBox實(shí)現(xiàn)單選、多選效果
這篇文章主要介紹了Android中ListView + CheckBox實(shí)現(xiàn)單選、多選效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Android 購物車加減功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 實(shí)現(xiàn)購物車加減功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04