Git Product home page Git Product logo

smoothratingbar's Introduction

A Star rating with touch and swipe rate enabled

  • Supports replacing default star icons with desired IconData
  • Supports half rate and full rate (1.0 or 0.5)
  • Swipe for incrementing/decrementing rate amount
  • Change star body and boundary colors independently
  • Control size of the star rating
  • Set your desired total Star count
  • Supports click-to-rate
  • Spacing between stars

Getting Started

In your flutter project add the dependency:

    dependencies:
        ...
        smooth_star_rating: 1.0.4+2

Usage example

import 'package:smooth_star_rating/smooth_star_rating.dart'; 
SmoothStarRating(
          allowHalfRating: false,
          onRatingChanged: (v) {
            rating = v;
            setState(() {});
          },
          starCount: 5,
          rating: rating,
          size: 40.0,
          filledIconData: Icons.blur_off,
          halfFilledIconData: Icons.blur_on,
          color: Colors.green,
          borderColor: Colors.green,
          spacing:0.0
        )

Constructor parameters

allowHalfRating                 -   Whether to use whole number for rating(1.0  or 0.5)
onRatingChanged(int rating)     -   Rating changed callback
starCount                       -   The maximum amount of stars
rating                          -   The current value of rating
size                            -   The size of a single star
color                           -   The body color of star
borderColor                     -   The border color of star
spacing                         -   Spacing between stars(default is 0.0)
filledIconData                  -   Full Rated Icon
halfFilledIconData              -   Half Rated Icon
defaultIconData                 -   Default Rated Icon

Screenshots

Full Rating

alt text

Half Rating

alt text

MIT LICENSE

Let me know if you find any bugs/issues.Thanks.

smoothratingbar's People

Contributors

p30arena avatar thangmam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

smoothratingbar's Issues

Another exception was thrown: 'package:flutter/src/rendering/wrap.dart': Failed assertion: line 122 pos 15: 'spacing != null': is not true.

Since the upgrade to 1.0.4+1 (and the newer flutter version), the plugin does not work anymore.
Please see the stack trace below.

I/flutter ( 6387): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 6387): The following assertion was thrown building DefaultTextStyle(debugLabel: (englishLike body1
I/flutter ( 6387): 2014).merge((blackMountainView title).copyWith), inherit: false, color: Color(0xdd000000), family:
I/flutter ( 6387): WorkSans, size: 14.0, weight: 400, baseline: alphabetic, decoration: TextDecoration.none, softWrap:
I/flutter ( 6387): wrapping at box width, overflow: clip):
I/flutter ( 6387): 'package:flutter/src/rendering/wrap.dart': Failed assertion: line 122 pos 15: 'spacing != null': is
I/flutter ( 6387): not true.
I/flutter ( 6387):
I/flutter ( 6387): Either the assertion indicates an error in the framework itself, or we should provide substantially
I/flutter ( 6387): more information in this error message to help you determine and fix the underlying cause.
I/flutter ( 6387): In either case, please report this assertion by filing a bug on GitHub:
I/flutter ( 6387): https://github.com/flutter/flutter/issues/new?template=BUG.md
I/flutter ( 6387):
I/flutter ( 6387): The relevant error-causing widget was:
I/flutter ( 6387): Material
I/flutter ( 6387): file:///D:/Programme/Android/flutter/.pub-cache/hosted/pub.dartlang.org/smooth_star_rating-1.0.4+1/lib/smooth_star_rating.dart:83:16
I/flutter ( 6387):
I/flutter ( 6387): When the exception was thrown, this was the stack:
I/flutter ( 6387): #2 new RenderWrap (package:flutter/src/rendering/wrap.dart:122:15)
I/flutter ( 6387): #3 Wrap.createRenderObject (package:flutter/src/widgets/basic.dart:4736:12)
I/flutter ( 6387): #4 RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5052:28)
I/flutter ( 6387): #5 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5547:11)
I/flutter ( 6387): #6 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #7 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #8 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #9 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #10 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #11 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #12 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #13 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #14 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #15 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #16 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #17 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #18 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #19 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #20 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #21 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #22 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #23 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #24 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #25 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #26 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #27 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #28 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #29 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #30 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #31 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #32 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #34 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #35 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #36 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #37 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #38 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #39 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #40 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #41 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #42 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #43 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #44 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #45 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #46 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #47 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #48 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #49 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #50 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #51 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #52 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter ( 6387): #53 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #54 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #55 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #56 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #57 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter ( 6387): #58 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #59 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #60 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #61 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #62 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #63 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #64 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #65 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #66 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #67 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #68 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #69 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #70 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #71 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #72 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #73 ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4617:11)
I/flutter ( 6387): #74 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #75 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter ( 6387): #76 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #77 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #78 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #79 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #80 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #81 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #82 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #83 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #84 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #85 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #86 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter ( 6387): #87 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #88 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5551:32)
I/flutter ( 6387): #89 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #90 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #91 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #92 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #93 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #94 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #95 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #96 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #97 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #98 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #99 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #100 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #101 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #102 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #103 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #104 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #105 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #106 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #107 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #108 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #109 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #110 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #111 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #112 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #113 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #114 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #115 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #116 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #117 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #118 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #119 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #120 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #121 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #122 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #123 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #124 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #125 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #126 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #127 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #128 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #129 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #130 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #131 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #132 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #133 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #134 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #135 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #136 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #137 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #138 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #139 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #140 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #141 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #142 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #143 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #144 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #145 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #146 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #147 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #148 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #149 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #150 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #151 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #152 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #153 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #154 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #155 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #156 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #157 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #158 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #159 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #160 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #161 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #162 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #163 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #164 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #165 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #166 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #167 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #168 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #169 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #170 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #171 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #172 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #173 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #174 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #175 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #176 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #177 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #178 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #179 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #180 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #181 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #182 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #183 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #184 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #185 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5445:14)
I/flutter ( 6387): #186 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #187 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #188 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #189 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #190 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #191 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #192 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #193 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #194 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #195 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #196 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #197 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #198 ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4617:11)
I/flutter ( 6387): #199 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #200 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #201 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #202 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #203 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #204 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4381:11)
I/flutter ( 6387): #205 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #206 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #207 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #208 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter ( 6387): #209 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter ( 6387): #210 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4206:5)
I/flutter ( 6387): #211 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4201:5)
I/flutter ( 6387): #212 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3194:14)
I/flutter ( 6387): #213 Element.updateChild (package:flutter/src/widgets/framework.dart:2988:12)
I/flutter ( 6387): #214 SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1288:36)
I/flutter ( 6387): #215 SliverMultiBoxAdaptorElement.createChild. (package:flutter/src/widgets/sliver.dart:1273:20)
I/flutter ( 6387): #216 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2412:19)
I/flutter ( 6387): #217 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1266:11)
I/flutter ( 6387): #218 RenderSliverMultiBoxAdaptor._createOrObtainChild. (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:354:23)
I/flutter ( 6387): #219 RenderObject.invokeLayoutCallback. (package:flutter/src/rendering/object.dart:1823:58)
I/flutter ( 6387): #220 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:875:15)
I/flutter ( 6387): #221 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1823:13)
I/flutter ( 6387): #222 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:343:5)
I/flutter ( 6387): #223 RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:427:5)
I/flutter ( 6387): #224 RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:78:12)
I/flutter ( 6387): #225 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #226 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:134:11)
I/flutter ( 6387): #227 RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:373:11)
I/flutter ( 6387): #228 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #229 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:410:13)
I/flutter ( 6387): #230 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1367:12)
I/flutter ( 6387): #231 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1285:20)
I/flutter ( 6387): #232 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #233 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #234 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #235 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #236 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #237 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #238 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #239 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #240 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #241 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #242 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #243 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #244 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #245 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #246 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #247 RenderSliverFillRemaining.performLayout (package:flutter/src/rendering/sliver_fill.dart:117:15)
I/flutter ( 6387): #248 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #249 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:410:13)
I/flutter ( 6387): #250 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1367:12)
I/flutter ( 6387): #251 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1285:20)
I/flutter ( 6387): #252 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #253 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #254 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #255 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #256 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #257 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #258 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #259 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #260 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #261 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #262 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #263 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #264 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #265 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:806:17)
I/flutter ( 6387): #266 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #267 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #268 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #269 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #270 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #271 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #272 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #273 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #274 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #275 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:505:15)
I/flutter ( 6387): #276 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #277 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:163:11)
I/flutter ( 6387): #278 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:477:7)
I/flutter ( 6387): #279 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:232:7)
I/flutter ( 6387): #280 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:391:14)
I/flutter ( 6387): #281 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #282 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #283 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #284 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #285 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1232:11)
I/flutter ( 6387): #286 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #287 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #288 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #289 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #290 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #291 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #292 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #293 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #294 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #295 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #296 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #297 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #298 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #299 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #300 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #301 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #302 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3168:13)
I/flutter ( 6387): #303 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #304 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:505:15)
I/flutter ( 6387): #305 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #306 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #307 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #308 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #309 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #310 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #311 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #312 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #313 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #314 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #315 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #316 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #317 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #318 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
I/flutter ( 6387): #319 RenderObject.layout (package:flutter/src/rendering/object.dart:1724:7)
I/flutter ( 6387): #320 RenderView.performLayout (package:flutter/src/rendering/view.dart:167:13)
I/flutter ( 6387): #321 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1584:7)
I/flutter ( 6387): #322 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:844:18)
I/flutter ( 6387): #323 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:344:19)
I/flutter ( 6387): #324 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:774:13)
I/flutter ( 6387): #325 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
I/flutter ( 6387): #326 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
I/flutter ( 6387): #327 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
I/flutter ( 6387): #328 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:850:7)
I/flutter ( 6387): #337 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
I/flutter ( 6387): #338 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
I/flutter ( 6387): #339 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
I/flutter ( 6387): (elided 10 frames from class _AssertionError, package dart:async, and package dart:async-patch)
I/flutter ( 6387):
I/flutter ( 6387): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter ( 6387): Another exception was thrown: 'package:flutter/src/rendering/wrap.dart': Failed assertion: line 122 pos 15: 'spacing != null': is not true.
I/flutter ( 6387): Another exception was thrown: 'package:flutter/src/rendering/wrap.dart': Failed assertion: line 122 pos 15: 'spacing != null': is not true.
I/flutter ( 6387): Another exception was thrown: A RenderFlex overflowed by 99831 pixels on the right.

localization direction

I have two languages in the app and use localization, one of the languages the text direction of it from right to left and "onRating" function change behavior in this plugin has one direction it is from left to right, so how I can change the direction to the language text direction "onHorizontalDragUpdate"?

does not work in setState.

I have the problem when fetch the data form backend the value is not considering in setState to double.

Spacing does not size horizontal gesture

Hi!

First of all, thank you for this library!

I noticed, when you change the spacing attribute, the horizontal sliding gesture does not scale with it. An example shown here:
Desktop-20201104-12372201-online
(scaling set to 30 and size 36)

Hope you can review this issue!
All the best

vertical layout?

Is it possible to add the ability to position these stars vertically based on an option? I have a layout which would fit a vertical line of stars much better than a horizontal line.

The method '_greaterThanFromInteger' was called on null.

When trying to use this package i get this error

I/flutter (11109): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (11109): The following NoSuchMethodError was thrown building SmoothStarRating(dirty):
I/flutter (11109): The method '_greaterThanFromInteger' was called on null.
I/flutter (11109): Receiver: null
I/flutter (11109): Tried calling: _greaterThanFromInteger(0)
I/flutter (11109): When the exception was thrown, this was the stack:
I/flutter (11109): #0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
I/flutter (11109): #1      int.> (dart:core/runtime/libintegers.dart:71:18)
I/flutter (11109): #2      int.>= (dart:core/runtime/libintegers.dart:76:37)
I/flutter (11109): #3      SmoothStarRating.buildStar (package:shopapp_tut/src/widgets/star_rating.dart:25:15)
I/flutter (11109): #4      SmoothStarRating.build.<anonymous closure> (package:shopapp_tut/src/widgets/star_rating.dart:74:37)
I/flutter (11109): #5      new List.generate (dart:core/list.dart:162:28)
I/flutter (11109): #6      SmoothStarRating.build (package:shopapp_tut/src/widgets/star_rating.dart:73:25)
I/flutter (11109): #7      StatelessElement.build (package:flutter/src/widgets/framework.dart:3774:28)
I/flutter (11109): #8      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3721:15)
I/flutter (11109): #9      Element.rebuild (package:flutter/src/widgets/framework.dart:3547:5)
I/flutter (11109): #10     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3701:5)
I/flutter (11109): #11     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3696:5)
I/flutter (11109): #12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2950:14)
I/flutter (11109): #13     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4965:3

No Key parameter in constructor

It is best practice to integrate the Key parameter into all widgets, since it depends on the use case if you need it or not.
Read more about it here.

Unfortunately this parameter is missing in the SmoothStarRating class.

Does not change state

I'm using this package to show the stars of a particular review in my app, I noticed that after I update the state with ChnageNotifer and update the values, the stars don't change state. I have to hot restart my app for new changes to be reflected.

self updatable widget is not optimum.

I don't think self updatable widget is an optimum behavior in flutter, Calling setState in void functions is a second nature for a flutter developer when required and this conflicts with your package update 1.1.0

Support RTL

Drag is reverse and Half Star not showing

SmoothStarRating(
                      rating: 2.5,
                      starCount: 5,
                      size: 20,
                      allowHalfRating: true,
                      color: Colors.yellow,
                      borderColor: Colors.white,
                    ),

First Start Sensitivity

The first start seems to be less responsive than the other starts. User almost need to press in the space between the first and second star to activate the first star.

allowHalfRating gone wrong

SmoothStarRating( allowHalfRating: true, rating: novel.rating, starCount: 10, size: 16, color: theme.accentColor, borderColor: theme.accentColor, spacing: 0.0, )
allowHalfRating_false

The code above was supposed to disallow half rating but it actually did allow, and vice versa. I believe there sth wrong in your conditional checking in your code.

SmoothStarRating( allowHalfRating: true, rating: novel.rating, starCount: 10, size: 16, color: theme.accentColor, borderColor: theme.accentColor, spacing: 0.0, )
allowHalfRating_true

Half ratings are not 0.5 increments

If a user gesture drags to set a rating and 1/2 ratings are enabled, the value reported is some double between the whole number indexes they've selected. It would be more expected to return 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, ... No one can accurately gesture drag more precisely, and the widget displays half values, but the reported value may be 2.2478 when the user expected they were setting the value 2.5.

It would just take a small bit of rounding logic on:
https://github.com/thangmam/smoothratingbar/blob/master/lib/smooth_star_rating.dart#L68

Thanks for the simple, clean rating widget!

allowHalfRating Fix

this code shows halfRating if allowHalfRating is set to false

SmoothStarRating(
      allowHalfRating: false, <--- this actually enables halfRating so it has to be true not false
      starCount: 5,
      rating: 2.5,
      size: 20.0,
      color: Colors.orange,
      borderColor: Colors.grey,
            ),

this code disallow halfRating if allowHalfRating is set to true

SmoothStarRating(
      allowHalfRating: true, <--- this actually enables halfRating so it has to be false not true
      starCount: 5,
      rating: 2.5,
      size: 20.0,
      color: Colors.orange,
      borderColor: Colors.grey,
            ),

Unexpected behavior on web ?

Hello @thangmam ! 😄
Thank for this simple and straightforward widget :)

I just imported it in a web project and the behavior of this package feels weird... The user with a mouse is expecting the widget to react on hovering !

rL6rweuvRZ

This may have been totally normal when having mobile device in mind while developing your widget, but you may want to change it so it reacts on mouse hovering only on web platforms and maybe even desktop OS !

I will post a PR to work on it 👍

Regards,
NanoDash 🎯

How to do the reverse?

Can you kindly guide me how do I display the read only stars based on the rating value fetched from the database?

The method 'toDouble' was called on null

I've got a 'The method 'toDouble' was called on null.' error when draging on the Widget, if the size isn't specified.
It's on the line 59 :
var i = _pos.dx / size;

It's not very important because it can be fixed easily.

Support right-to-left locales

Hi !

My package (RateMyApp) depends on yours in order to display a star rate dialog. But I have problems with users who are using right-to-left locales. Would it be possible to add a support for it in this plugin ?

It would be great !

RTL Support

Screen Shot 2020-06-09 at 23 47 34

Currently the application displays the stars correctly in RTL however while rating it still uses LTR. Basically if you click 1 star, it will rate it 5 and vice versa.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.