Flutter 인증 코드 가져오기 카운트다운 버튼
1884 단어 flutter 모바일 개발
Timer timer = new Timer(new Duration(milliseconds: 60), (){
//
});
위 코드는 타이머를 실행하고 60초 후에 리셋을 실행하는 방법입니다.하지만 카운트다운 진도를 얻을 수 없습니다.그래서 우리는 주기적인 Timer를 만들 수 있다.
Timer = countDownTimer = new Timer.periodic(new Duration(seconds: 1), (timer){
print(timer.tick);
});
위에는 주기적으로 실행되는timer로 1초 간격으로 실행되기 때문에 우리는 이것을 이용하여 카운트다운 단추를 쓸 수 있다.
String yzmText=" ";
new OutlineButton(
onPressed: yzmText==" "?yzmGet:null,
padding: EdgeInsets.only(top: 0),
borderSide: new BorderSide(color: mainGreenColor),
highlightedBorderColor: mainGreenColor,
child: new Text(yzmText),
textColor: mainGreenColor,
),
먼저 단추에 표시된 텍스트의 변수인 yzmText를 정의합니다.zai on Pressed에서 yzmText가 '인증코드 가져오기' 인지 여부에 따라 클릭 가능한지 판단하고, 클릭 가능한yzmGet 방법을 실행합니다.
///
Timer countDownTimer;
yzmGet() {
countDownTimer?.cancel();//
countDownTimer = null;
countDownTimer = new Timer.periodic(new Duration(seconds: 1), (t){
setState(() {
if(60-t.tick>0){//60-t.tick , 0, yzmText , yzmText, countTimer
yzmText = "${60-t.tick} ";
}else{
yzmText = ' ';
countDownTimer.cancel();
countDownTimer = null;
}
});
});
}
마지막으로 dispose에서 timer를 놓는 것을 잊지 마세요.
@override
void dispose() {
// TODO: implement dispose
countDownTimer?.cancel();
countDownTimer = null;
super.dispose();
}
마지막 마지막:
flutter, :187670882