Flutter-Neumorphic
Flutter-Neumorphic copied to clipboard
NeumorphicSlider Rect argument contained a NaN value
Hi,
I have AudioPlay screen using a NeumorphicSlider like below:
I have a slider widget called PositionSeekWidget. Inside I implement a Neuromorphic slider.
see here the code for the PositionSeekWidget
class PositionSeekWidget extends StatefulWidget {
final Duration currentPosition;
final Duration duration;
final Function(Duration) seekTo;
const PositionSeekWidget({
@required this.currentPosition,
@required this.duration,
@required this.seekTo,
});
@override
_PositionSeekWidgetState createState() => _PositionSeekWidgetState();
}
class _PositionSeekWidgetState extends State<PositionSeekWidget> {
Duration _visibleValue;
bool listenOnlyUserInterraction = false;
double get percent => widget.duration.inMilliseconds == 0.0 ? 0.0 : _visibleValue.inMilliseconds / widget.duration.inMilliseconds;
@override
void initState() {
super.initState();
_visibleValue = widget.currentPosition;
}
@override
void didUpdateWidget(PositionSeekWidget oldWidget) {
super.didUpdateWidget(oldWidget);
if (!listenOnlyUserInterraction) {
_visibleValue = widget.currentPosition;
}
}
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: NeumorphicSlider(
// sliderHeight: 50,
min: 0.0,
max: widget.duration.inMilliseconds.toDouble(),
value: percent * widget.duration.inMilliseconds.toDouble(),
style: SliderStyle(
// variant: Colors.grey,
// accent: Colors.grey[500],
variant: Color(0xffEFAB63),
accent: Color(0xffEB7E59),
lightSource: LightSource.bottomRight,
depth: 2.0,
disableDepth: false,
),
onChangeEnd: (newValue) {
setState(() {
listenOnlyUserInterraction = false;
widget.seekTo(_visibleValue);
});
},
onChangeStart: (_) {
setState(() {
listenOnlyUserInterraction = true;
});
},
onChanged: (newValue) {
setState(() {
final to = Duration(milliseconds: newValue.floor());
_visibleValue = to;
});
},
),
),
],
),
Padding(
padding: EdgeInsets.only(
left: MediaQuery.of(context).size.width * (16.0 / 360),
right: MediaQuery.of(context).size.width * (16.0 / 360),
top: MediaQuery.of(context).size.width * (8.0 / 360),
bottom: MediaQuery.of(context).size.width * (5.0 / 360),
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
durationToString(widget.currentPosition),
style: TextStyle(
color: Colors.white,
fontWeight: FontWeight.w400,
fontFamily: "Roboto",
fontStyle: FontStyle.normal,
fontSize: 12 * MediaQuery.of(context).textScaleFactor,
),
),
Text(
durationToString(widget.duration),
style: TextStyle(
color: Colors.white,
// const Color(0xff9e9696),
fontWeight: FontWeight.w400,
fontFamily: "Roboto",
fontStyle: FontStyle.normal,
fontSize: 12 * MediaQuery.of(context).textScaleFactor,
),
),
],
),
),
],
),
);
}
}
See here is how the slider is called on the screen:
StreamBuilder(
stream: assetsAudioPlayer.realtimePlayingInfos,
builder: (context, snapshot) {
if (!snapshot.hasData) {
return SizedBox();
}
final RealtimePlayingInfos infos = snapshot.data;
return PositionSeekWidget(
currentPosition: infos.currentPosition,
duration: infos.duration,
seekTo: (to) {
assetsAudioPlayer.seek(to);
},
);
}),
When the audio stop playing, I have this exception that I could not pinpoint:
[ +142 ms] I/flutter (24593): βββ‘ EXCEPTION CAUGHT BY RENDERING LIBRARY ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[ ] I/flutter (24593): The following assertion was thrown during paint():
[ ] I/flutter (24593): Rect argument contained a NaN value.
[ ] I/flutter (24593): 'dart:ui/painting.dart':
[ ] I/flutter (24593): Failed assertion: line 40 pos 10: '<optimized out>'
[ ] I/flutter (24593):
[ ] I/flutter (24593): The relevant error-causing widget was:
[ +1 ms] I/flutter (24593): NeumorphicSlider
[ ] I/flutter (24593): file:///C:/Users/bob/marley/music/album/lib/screens/player_screen/PositionSeekWidget.dart:48:24
[ ] I/flutter (24593):
[ +4 ms] I/flutter (24593): When the exception was thrown, this was the stack:
[ ] I/flutter (24593): #2 _rectIsValid (dart:ui/painting.dart:40:10)
[ ] I/flutter (24593): #3 Canvas.saveLayer (dart:ui/painting.dart:3984:14)
[ ] I/flutter (24593): #4 NeumorphicDecorationPainter._drawShadow (package:flutter_neumorphic/src/decoration/neumorphic_decoration_painter.dart:180:11)
[ ] I/flutter (24593): #5 NeumorphicDecorationPainter.paint (package:flutter_neumorphic/src/decoration/neumorphic_decoration_painter.dart:126:9)
[ ] I/flutter (24593): #6 RenderDecoratedBox.paint (package:flutter/src/rendering/proxy_box.dart:2146:17)
[ ] I/flutter (24593): #7 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #8 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #9 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:142:15)
[ ] I/flutter (24593): #10 RenderDecoratedBox.paint (package:flutter/src/rendering/proxy_box.dart:2165:11)
[ ] I/flutter (24593): #11 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #12 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #13 RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:72:15)
[ ] I/flutter (24593): #14 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #15 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #16 RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:72:15)
[ ] I/flutter (24593): #17 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #18 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #19 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2805:15)
[ ] I/flutter (24593): #20 RenderStack.paintStack (package:flutter/src/rendering/stack.dart:629:5)
[ ] I/flutter (24593): #21 RenderStack.paint (package:flutter/src/rendering/stack.dart:639:7)
[ ] I/flutter (24593): #22 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #23 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #24 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:142:15)
[ ] I/flutter (24593): #25 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #26 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #27 RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:142:15)
[ ] I/flutter (24593): #28 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #29 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #30 _RenderLayoutBuilder.paint (package:flutter/src/widgets/layout_builder.dart:384:15)
[ ] I/flutter (24593): #31 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #32 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #33 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2805:15)
[ ] I/flutter (24593): #34 RenderFlex.paint (package:flutter/src/rendering/flex.dart:1079:7)
[ +1 ms] I/flutter (24593): #35 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #36 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #37 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2805:15)
[ ] I/flutter (24593): #38 RenderFlex.paint (package:flutter/src/rendering/flex.dart:1079:7)
[ ] I/flutter (24593): #39 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #40 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ +4 ms] I/flutter (24593): #41 RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:72:15)
[ ] I/flutter (24593): #42 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #43 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #44 RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2805:15)
[ ] I/flutter (24593): #45 RenderFlex.paint (package:flutter/src/rendering/flex.dart:1079:7)
[ ] I/flutter (24593): #46 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #47 PaintingContext.paintChild (package:flutter/src/rendering/object.dart:189:13)
[ ] I/flutter (24593): #48 _RenderSingleChildViewport.paint.paintContents (package:flutter/src/widgets/single_child_scroll_view.dart:596:17)
[ +1 ms] I/flutter (24593): #49 _RenderSingleChildViewport.paint (package:flutter/src/widgets/single_child_scroll_view.dart:604:22)
[ ] I/flutter (24593): #50 RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2322:7)
[ ] I/flutter (24593): #51 PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:140:11)
[ ] I/flutter (24593): #52 PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:100:5)
[ ] I/flutter (24593): #53 PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:978:29)
[ ] I/flutter (24593): #54 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:455:19)
[ ] I/flutter (24593): #55 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:874:13)
[ ] I/flutter (24593): #56 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
[ ] I/flutter (24593): #57 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1082:9)
[ ] I/flutter (24593): #61 _invoke (dart:ui/hooks.dart:161:10)
[ ] I/flutter (24593): #62 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:253:5)
[ ] I/flutter (24593): #63 _drawFrame (dart:ui/hooks.dart:120:31)
[ ] I/flutter (24593): (elided 5 frames from class _AssertionError and dart:async)
[ ] I/flutter (24593):
[ ] I/flutter (24593): The following RenderObject was being processed when the exception was fired: RenderDecoratedBox#242ca relayoutBoundary=up23:
[ ] I/flutter (24593): creator: DecoratedBox β DecoratedBox β Padding β Container β AnimatedContainer β DefaultTextStyle β
[ ] I/flutter (24593): _NeumorphicContainer β Neumorphic β Align β Stack β Listener β _GestureSemantics β β―
[ ] I/flutter (24593): parentData: <none> (can use size)
[ ] I/flutter (24593): constraints: BoxConstraints(0.0<=w<=376.7, 0.0<=h<=Infinity)
[ ] I/flutter (24593): size: Size(22.5, 22.5)
[ ] I/flutter (24593): ββdecoration: NeumorphicDecoration
[ ] I/flutter (24593): configuration: ImageConfiguration(bundle: PlatformAssetBundle#684a3(), devicePixelRatio: 2.8,
[ ] I/flutter (24593): locale: en, textDirection: TextDirection.ltr, platform: android)
[ ] I/flutter (24593): This RenderObject had the following descendants (showing up to depth 5):
[ ] I/flutter (24593): child: RenderPadding#b3afe relayoutBoundary=up24
[ ] I/flutter (24593): child: RenderClipPath#8a3c4 relayoutBoundary=up25
[ +3 ms] I/flutter (24593): child: RenderPadding#c7cce relayoutBoundary=up26
[ ] I/flutter (24593): child: RenderConstrainedBox#7ba2b relayoutBoundary=up27
Any clue how to handle this ? or why this happen ?
Hi, did you find the solution for the problem