-
Notifications
You must be signed in to change notification settings - Fork 21
Description
Describe the bug
When the RadialTrack has a end value smaller than 10, the range is not properly renderered and throws an exception
To Reproduce
`import 'package:flutter/material.dart';
import 'package:geekyants_flutter_gauges/geekyants_flutter_gauges.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@OverRide
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key, required this.title});
final String title;
@OverRide
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: RadialGauge(
track: RadialTrack(start: 0, end: 1),
needlePointer: [NeedlePointer(value: 0.1)],
),
),
);
}
}
`
Expected behavior
A gauge with a range from 0 to 1, with the needle at value 0.1. And no exception being thrown
Screenshots

Desktop (please complete the following information):
- OS: Windows 10
Additional context
`
════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during paint():
Offset argument contained a NaN value.
'dart:ui/painting.dart':
Failed assertion: line 41 pos 10: ''
The relevant error-causing widget was:
RadialGaugeContainer RadialGaugeContainer:file:///C:/Users/theon/AppData/Local/Pub/Cache/hosted/pub.dev/geekyants_flutter_gauges-1.0.4/lib/src/radial_gauge/radial_gauge.dart:200:29
When the exception was thrown, this was the stack:
#2 _offsetIsValid (dart:ui/painting.dart:41:10)
painting.dart:41
#3 _NativeCanvas.drawLine (dart:ui/painting.dart:6713:12)
painting.dart:6713
#4 RenderRadialGaugeContainer.paintRulersAndLabels (package:geekyants_flutter_gauges/src/radial_gauge/radial_gauge_container_painter.dart:86:16)
radial_gauge_container_painter.dart:86
#5 RenderRadialGaugeContainer.paint (package:geekyants_flutter_gauges/src/radial_gauge/radial_gauge_container_painter.dart:221:5)
radial_gauge_container_painter.dart:221
#6 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#7 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#8 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:3367:15)
box.dart:3367
#9 RenderRadialGauge.paint (package:geekyants_flutter_gauges/src/radial_gauge/radial_gauge_painter.dart:309:5)
radial_gauge_painter.dart:309
#10 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#11 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#12 RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:81:15)
shifted_box.dart:81
#13 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#14 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#15 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:3367:15)
box.dart:3367
#16 RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:425:5)
custom_layout.dart:425
#17 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#18 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#19 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#20 _RenderInkFeatures.paint (package:flutter/src/material/material.dart:634:11)
material.dart:634
#21 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#22 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#23 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#24 RenderPhysicalModel.paint. (package:flutter/src/rendering/proxy_box.dart:2184:15)
proxy_box.dart:2184
#25 PaintingContext.pushClipRRect (package:flutter/src/rendering/object.dart:609:14)
object.dart:609
#26 RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:2171:21)
proxy_box.dart:2171
#27 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#28 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#29 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#30 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#31 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#32 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#33 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#34 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:176:11)
object.dart:176
#35 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:121:5)
object.dart:121
#36 PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:272:7)
object.dart:272
#37 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:253:7)
object.dart:253
#38 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#39 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#40 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#41 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#42 _ZoomExitTransitionPainter.paint (package:flutter/src/material/page_transitions_theme.dart:1457:21)
page_transitions_theme.dart:1457
#43 _RenderSnapshotWidget.paint (package:flutter/src/widgets/snapshot_widget.dart:337:15)
snapshot_widget.dart:337
#44 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#45 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#46 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#47 _ZoomEnterTransitionPainter.paint (package:flutter/src/material/page_transitions_theme.dart:1362:21)
page_transitions_theme.dart:1362
#48 _RenderSnapshotWidget.paint (package:flutter/src/widgets/snapshot_widget.dart:337:15)
snapshot_widget.dart:337
#49 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#50 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#51 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#52 _ZoomExitTransitionPainter.paint (package:flutter/src/material/page_transitions_theme.dart:1457:21)
page_transitions_theme.dart:1457
#53 _RenderSnapshotWidget.paint (package:flutter/src/widgets/snapshot_widget.dart:337:15)
snapshot_widget.dart:337
#54 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#55 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#56 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#57 _ZoomEnterTransitionPainter.paint (package:flutter/src/material/page_transitions_theme.dart:1362:21)
page_transitions_theme.dart:1362
#58 _RenderSnapshotWidget.paint (package:flutter/src/widgets/snapshot_widget.dart:337:15)
snapshot_widget.dart:337
#59 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#60 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#61 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#62 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#63 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:176:11)
object.dart:176
#64 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:121:5)
object.dart:121
#65 PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:272:7)
object.dart:272
#66 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:253:7)
object.dart:253
#67 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#68 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#69 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#70 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#71 RenderOffstage.paint (package:flutter/src/rendering/proxy_box.dart:3868:11)
proxy_box.dart:3868
#72 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#73 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#74 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#75 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#76 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#77 _RenderTheaterMixin.paint (package:flutter/src/widgets/overlay.dart:1120:15)
overlay.dart:1120
#78 _RenderTheater.paint (package:flutter/src/widgets/overlay.dart:1477:13)
overlay.dart:1477
#79 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#80 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#81 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#82 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#83 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#84 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#85 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#86 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#87 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#88 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#89 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#90 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#91 RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:644:11)
custom_paint.dart:644
#92 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#93 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#94 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#95 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#96 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#97 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#98 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#99 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#100 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#101 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#102 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#103 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#104 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#105 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#106 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#107 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#108 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#109 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
proxy_box.dart:140
#110 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#111 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
object.dart:261
#112 RenderView.paint (package:flutter/src/rendering/view.dart:322:15)
view.dart:322
#113 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3423:7)
object.dart:3423
#114 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:176:11)
object.dart:176
#115 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:121:5)
object.dart:121
#116 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1309:31)
object.dart:1309
#117 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1319:15)
object.dart:1319
#118 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:631:23)
binding.dart:631
#119 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1261:13)
binding.dart:1261
#120 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
binding.dart:495
#121 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1434:15)
binding.dart:1434
#122 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1347:9)
binding.dart:1347
#123 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:1057:9)
binding.dart:1057
#124 PlatformDispatcher.scheduleWarmUpFrame. (dart:ui/platform_dispatcher.dart:886:16)
platform_dispatcher.dart:886
#128 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193:12)
isolate_patch.dart:193
(elided 5 frames from class _AssertionError, class _Timer, and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderRadialGaugeContainer#8bafe relayoutBoundary=up3
parentData: offset=Offset(632.0, 340.5); id=null (can use size)
constraints: BoxConstraints(0.0<=w<=1264.0, 0.0<=h<=681.0)
size: Size(1264.0, 681.0)
RenderObject: RenderRadialGaugeContainer#8bafe relayoutBoundary=up3
parentData: offset=Offset(632.0, 340.5); id=null (can use size)
constraints: BoxConstraints(0.0<=w<=1264.0, 0.0<=h<=681.0)
size: Size(1264.0, 681.0)
`