阅读 79

Flutter Widget 之 flutter_rating_bar

你若尝试过从头开始执行评分条控制项RatingBar,可能得要一番功夫

ezgif.com-gif-maker.gif 下次不妨试试flutter_rating_bar

首先初始化RatingBar并设定最小与最大值和一个备选的initialRating

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3, ) 复制代码

image.png

你可以利用allowHalfRating来启用半分评价

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalgRating: true, ) 复制代码

image.png 最后加个onRatingUpdate,以便于评分更新时触发此回调

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     alloqHalfRating: true,     onRatingUpdate: _saveRating, ) 复制代码

可利用评分的小部件属性来指定评级指标,无论是心形、星星、马蹄形、三叶草还是蓝月,只要是小部件就可以使用

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(         full: Icon(             Icons.star,             color: Colors.amber,         ),         half: HalfFilledIcon(),         empty: Icon(             Icons.star,             color: Colors.grey,         ),     ), ) 复制代码

ezgif.com-gif-maker (1).gif

这样用户便能触控拖拽来调整评分,记得RatingBar默认先试试五级指标.

ezgif.com-gif-maker (2).gif

因此若满级分高于五,请务必为就itemCount来相应地调整其属性

RatingBar(     minRating: 1,     maxRating: 8,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     itemCount: 8, ) 复制代码

image.png 调整指标的填充和大小以便得到想要的RatingBar外观

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     itemSize: 48,     itemPadding: EdgeInsets.symmetric(horizoontal: 4.0) ) 复制代码

ezgif.com-gif-maker (3).gif

RatingBar默认方向是水平的,但如果垂直评级更适合的话,那么也可尝试调整direction属性

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     direction: Axis.vertical, ) 复制代码

image.png

RatingBar还自带发光效果

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     glowColor: Colors.lightGreen,     glowRadius: 5, ) 复制代码

ezgif.com-gif-maker (5).gif 可加以自定义或完全禁用

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     glow: false, ) 复制代码

若需要在用户拖拽评分条时回调onRatingUpdate,updateDrag所属布尔值设为true

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidgett: RatingWidget(...),     updateDrag: true, ) 复制代码

ezgif.com-gif-maker (6).gif 反之,若要禁用拖动输入,则可将tapOnlyMode设置为true

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     tapOnleMode: true, ) 复制代码

ezgif.com-gif-maker (7).gif 最后,若需完全禁用手势输入,可切换的属性为ignoreGestures

RatingBar(     minRating: 1,     maxRating: 5,     initialRating: 3,     allowHalfRating: true,     onRatingUpdate: _saveRating,     ratingWidget: RatingWidget(...),     ignoreGestures: true, ) 复制代码

ezgif.com-gif-maker (8).gif

如果想了解有关flutter_rating_bar的内容,或者关于Flutter的其他功能


作者:程序员界的小学生
链接:https://juejin.cn/post/7170590815587139614


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐