Element 系列组件之 ERate 评分组件

老孟Flutter

共 590字,需浏览 2分钟

 ·

2021-12-30 00:49


介绍

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

引入

  1. 「pubspec.yaml」 中依赖

    element_ui: ^lastversion

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

  2. import

    import 'package:element_ui/widgets.dart';

用法

基础用法

ERate(value: 3.7)

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

「count」:  星星个数。

ERate(value: 5.5,count: 6,)

「showLabel」:是否显示label。

ERate(
  value: 3.7,
  showLabel: true,
)

「labelBuilder」:自定义lable。

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。

ERate(
  value: 3.7,
  itemSize: 60,
)

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

「iconType」:评分图标类型。

  • 「star」:星星图标。

  • 「sentiment」:情绪图标,不同的值,图标不同。

  • 「sameSentiment」:情绪图标,不同的值,图标相同。

ERate(
  value: 5,
  iconType: RateIconType.sentiment,
)
ERate(
  value: 5,
  iconType: RateIconType.sameSentiment,
)

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

ERate(
  value: 3.5,
  space: 12,
)

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

ERate(
  value: 3.5,
  enable: false,
)

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

ERate(
  value: 3.5,
  onChanged: (value){
    print('$value');
  },
)

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

ERate(
  value: 3.5,
  child: SizedBox(
    width: 40,
    height: 40,
    child: ColoredBox(
      color: Colors.white,
    ),
  ),
)
ERate(
  value: 3.5,
  itemBuilder: (context, index) {
    return Text('$index');
  },
)

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

  • 「activeColor」 : 激活状态的颜色,默认 「Colors.amber」
  • 「inactiveColor」:未激活状态的颜色,默认 「EleTheme」 主题中 「borderColorLighter」的颜色。
ERate(
  value: 3.5,
  style: ERateStyle(
    activeColor: Colors.red,
    inactiveColor: Colors.black,
  ),
)



你可能还喜欢

关注「老孟Flutter」
让你每天进步一点点

浏览 148
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报