前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Element 系列组件之 ERate 评分组件

Element 系列组件之 ERate 评分组件

作者头像
老孟Flutter
发布2021-12-27 13:21:28
7690
发布2021-12-27 13:21:28
举报
文章被收录于专栏:Flutter

介绍

「ERate」 组件是 「Flutter Element」 组件系列中的评分组件。

引入

「pubspec.yaml」 中依赖

代码语言:javascript
复制
element_ui: ^lastversion

最新的版本到pub上查看,pub地址:https://pub.dev/packages/element_ui

import

代码语言:javascript
复制
import 'package:element_ui/widgets.dart';

用法

基础用法

代码语言:javascript
复制
ERate(value: 3.7)

「value」:评分值,其大小和 **count **有关联,**count **默认为5。

「count」: 星星个数。

代码语言:javascript
复制
ERate(value: 5.5,count: 6,)

「showLabel」:是否显示label。

代码语言:javascript
复制
ERate(
  value: 3.7,
  showLabel: true,
)

「labelBuilder」:自定义lable。

代码语言:javascript
复制
ERate(
  value: 5,
  showLabel: true,
  labelBuilder: (double value) {
    String s = '';
    if (value <= 1) {
      s = '极差';
    } else if (value <= 2) {
      s = '失望';
    } else if (value <= 3) {
      s = '一般';
    } else if (value <= 4) {
      s = '满意';
    } else if (value <= 5) {
      s = '惊喜';
    }
    return Text(s);
  },
)

「itemSize」:每一项的大小,默认40。

代码语言:javascript
复制
ERate(
  value: 3.7,
  itemSize: 60,
)

上边为默认,下边设置了60。

「iconType」:评分图标类型。

  • 「star」:星星图标。
  • 「sentiment」:情绪图标,不同的值,图标不同。
  • 「sameSentiment」:情绪图标,不同的值,图标相同。
代码语言:javascript
复制
ERate(
  value: 5,
  iconType: RateIconType.sentiment,
)
代码语言:javascript
复制
ERate(
  value: 5,
  iconType: RateIconType.sameSentiment,
)

「space」:每一个item直接的间隔。

代码语言:javascript
复制
ERate(
  value: 3.5,
  space: 12,
)

「enable」:是否可用,设置为false时,不可改变其值。

代码语言:javascript
复制
ERate(
  value: 3.5,
  enable: false,
)

「onChanged」: 值发生变化时回调。

代码语言:javascript
复制
ERate(
  value: 3.5,
  onChanged: (value){
    print('$value');
  },
)

「child」「itemBuilder」 都是允许用户自定义 item的属性,但「itemBuilder」优先级高于 「child」,一般情况下 「child」 用于每一个 Item 都一样的情况, 「itemBuilder」 用于每一个 Item 都不一样的情况。

代码语言:javascript
复制
ERate(
  value: 3.5,
  child: SizedBox(
    width: 40,
    height: 40,
    child: ColoredBox(
      color: Colors.white,
    ),
  ),
)
代码语言:javascript
复制
ERate(
  value: 3.5,
  itemBuilder: (context, index) {
    return Text('$index');
  },
)

自定义 Item 组件的颜色是不起作用的,改变颜色需要通过 「style」 属性:

  • 「activeColor」 : 激活状态的颜色,默认 「Colors.amber」
  • 「inactiveColor」:未激活状态的颜色,默认 「EleTheme」 主题中 「borderColorLighter」的颜色。
代码语言:javascript
复制
ERate(
  value: 3.5,
  style: ERateStyle(
    activeColor: Colors.red,
    inactiveColor: Colors.black,
  ),
)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老孟Flutter 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 引入
  • 用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档