I'm making a UI, which has a verification for the phone number. It has four codes to be input which you will get via notification from our backend. Since I'm responsible to make the UI for this, it is really not working out for me.
This is the UI which I want to achieve :
I have tried my level best to achieve this but I'm failing every time to achieve one.
CODE
Container(
height: 64.0,
width: 56.0,
child: Card(
color: Color.fromRGBO(173, 179, 191, 0.7),
child: Padding(
padding: EdgeInsets.only(left: 10.0, right: 10.0),
child: TextEditorForPhoneVerify(this.codeOne)
)
)
)
I have my own widget for the inputs :
class TextEditorForPhoneVerify extends StatelessWidget {
final TextEditingController code;
TextEditorForPhoneVerify(this.code);
@override
Widget build(BuildContext context) {
return TextField(
textAlign: TextAlign.center,
keyboardType: TextInputType.number,
controller: this.code,
maxLength: 1,
cursorColor: Theme.of(context).primaryColor,
decoration: InputDecoration(
hintText: "*",
counterText: '',
hintStyle: TextStyle(color: Colors.black, fontSize: 20.0)
)
);
}
}
Now every time I use the textAlign: TextAlgn.center, it crashes and crashes my other textfields also. I have made a note not to use the same widget for all, they all have different widgets. When I hot restart it, it works. But this textAlign is something buggy.
I really want to achieve this, with the above code I'm gettin this :
RESULT
And the error I get when I try to put the cursor to center is :
flutter: ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown during performLayout():
flutter: Please see the documentation for computeDistanceToActualBaseline for the required calling
flutter: conventions of this method.
flutter: 'package:flutter/src/rendering/box.dart': Failed assertion: line 1642 pos 12: '!_debugDoingBaseline'
flutter:
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter: https://github.com/flutter/flutter/issues/new?template=BUG.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2 RenderBox.getDistanceToBaseline (package:flutter/src/rendering/box.dart:1642:12)
flutter: #3 _RenderDecoration._layout.layoutLineBox (package:flutter/src/material/input_decorator.dart:820:35)
flutter: #4 _RenderDecoration._layout (package:flutter/src/material/input_decorator.dart:857:18)
flutter: #5 _RenderDecoration.performLayout (package:flutter/src/material/input_decorator.dart:987:44)
flutter: #6 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #7 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #8 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #9 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #10 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #11 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #12 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #13 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
flutter: #14 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #15 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #16 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #17 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #18 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #19 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #20 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #21 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #22 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1206:11)
flutter: #23 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #24 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
flutter: #25 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #26 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #27 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #28 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:259:13)
flutter: #29 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #30 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
flutter: #31 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #32 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:738:15)
flutter: #33 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #34 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
flutter: #35 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:350:7)
flutter: #36 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
flutter: #37 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
flutter: #38 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #39 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #40 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #41 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #42 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1206:11)
flutter: #43 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #44 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #45 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #46 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #47 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #48 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #49 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #50 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
flutter: #51 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #52 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #53 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #54 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #55 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #56 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #57 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #58 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #59 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #60 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #61 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #62 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #63 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3032:13)
flutter: #64 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #65 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
flutter: #66 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #67 __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #68 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #69 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #70 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #71 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #72 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #73 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #74 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #75 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #76 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #77 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #78 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #79 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #80 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #81 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #82 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #83 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #84 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #85 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
flutter: #86 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #87 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #88 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #89 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #90 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #91 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #92 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #93 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #94 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #95 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #96 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
Reloaded 0 of 567 libraries in 2,311ms.
flutter: #97 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #98 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3032:13)
flutter: #99 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #100 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
flutter: #101 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #102 __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #103 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #104 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #105 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #106 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #107 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #108 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #109 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #110 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #111 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #112 _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
flutter: #113 RenderObject.layout (package:flutter/src/rendering/object.dart:1632:7)
flutter: #114 RenderView.performLayout (package:flutter/src/rendering/view.dart:151:13)
flutter: #115 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1507:7)
flutter: #116 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:766:18)
flutter: #117 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:329:19)
flutter: #118 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
flutter: #119 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:268:5)
flutter: #120 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:988:15)
flutter: #121 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:928:9)
flutter: #122 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:749:7)
flutter: #124 _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
flutter: #125 _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
flutter: #126 _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
flutter: (elided 3 frames from class _AssertionError and package dart:async)
flutter:
flutter: The following RenderObject was being processed when the exception was fired:
flutter: _RenderDecoration#10671 NEEDS-LAYOUT NEEDS-PAINT
flutter: creator: _Decorator ← InputDecorator ← AnimatedBuilder ← Listener ← RawGestureDetector ←
flutter: GestureDetector ← TextSelectionGestureDetector ← IgnorePointer ← Semantics ← TextField ←
flutter: TextEditorForPhoneVerify ← Padding ← ⋯
flutter: parentData: <none> (can use size)
flutter: constraints: BoxConstraints(w=28.0, h=56.0)
flutter: size: Size(28.0, 56.0)
flutter: This RenderObject had the following descendants (showing up to depth 5):
flutter: RenderRepaintBoundary#9838d relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderPointerListener#95bb3 relayoutBoundary=up2 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderSemanticsAnnotations#1d581 relayoutBoundary=up3 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderIgnorePointer#7b37c relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderLeaderLayer#d035d relayoutBoundary=up5 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderAnimatedOpacity#5b708 relayoutBoundary=up1 NEEDS-PAINT
flutter: RenderParagraph#62bf0 relayoutBoundary=up2 NEEDS-PAINT
flutter: RenderConstrainedBox#fb712 relayoutBoundary=up1 NEEDS-LAYOUT NEEDS-PAINT
flutter: RenderCustomPaint#7c081 NEEDS-LAYOUT NEEDS-PAINT
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
flutter: Another exception was thrown: Please see the documentation for computeDistanceToActualBaseline for the required calling conventions of this method.
Also, I'm more interested in getting this also : As soon as the number is put the cursor should go to the next one automatically without even to press any key on keybord. As you have seen in most of the verification code layouts.
Please help, cos I have tried my level to achieve one but couldn't get the desird result. Thanks
You can use PinCodeTextField https://pub.dev/packages/pin_code_fields
You can use different shape and animation also it handle the problem which is occurs when you remove the text in middle.