Я пытаюсь построить экран OTP, как показано на рисунке ниже, но не могу создать точное изображение. appLo go должно быть в TopCenter, а кнопка Submit должна быть в BottomCenter, элементы OTP должны быть в центре экрана, а OtpBox должен быть похож на изображение с 1 символом ограничения.
Я пытался построить как это, но не смог построить:
Здесь Мой экран, который я построил:
МОЙ КОД:
return Scaffold(
body: Center(
child: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(20.0),
child: Column(
children: <Widget>[
Container(
height: MediaQuery.of(context).size.height/4.5,
width: MediaQuery.of(context).size.width/2.5,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage('assets/TriggerTrackerIcons/splash_logo@3x.png'),
)
),
),
SizedBox(height: 50,),
Container(
alignment: Alignment.centerLeft,
child: Text("Enter OTP:", style:TextStyle(fontWeight:FontWeight.bold, fontSize: 20, color: Colors.orange))
),
SizedBox(height: 8,),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
otpBoxBuilder(),
SizedBox(width: 5,),
otpBoxBuilder(),
SizedBox(width: 5,),
otpBoxBuilder(),
SizedBox(width: 5,),
otpBoxBuilder(),
],
),
SizedBox(height: 50,),
InkWell(
child: Container(
alignment: Alignment.center,
height: MediaQuery.of(context).size.height/15,
color: Colors.orangeAccent,
child: Text("Submit", style:TextStyle(fontWeight:FontWeight.bold, fontSize: 20, color: Colors.white)),
),
onTap: (){
Navigator.of(context).push(MaterialPageRoute(builder:(context)=>HomePage()));
},
),
],
),
),
),
),
);
СТРОИТЕЛЬ ОТП. КОРОБКИ:
Widget otpBoxBuilder(){
return Container(
alignment: Alignment.center,
height: 70,
width: 70,
child: TextField(
keyboardType: TextInputType.number,
maxLength: 1,
decoration: InputDecoration(
border: InputBorder.none
),
),
decoration: BoxDecoration(
border: Border.all(color: Colors.blue)
),
);
}