因为 flutter 提供的 Stepper 无法满足业务需求,于是只好自己实现一个了
flutter Stepper 的样式
我实现的 Stepper
网上有很多图文混编的方案,无非两种
他们之间的优势比较什么的,网上很多,我也不再赘述,我这里直接选择第二种,因为简单,需求也只是可以插入图片.然后各种搜索如何实现,找到一篇博文
https://blog.csdn.net/ljzdyh/article/details/82497625
我的代码就是参考这篇文章来的,因为文章中有些地方使用的api已经被标记为弃用了,所以只好改一下,加点注释,试图让它更加通俗易懂.
从GitHub拉取项目的时候,网速让我哭了
于是我找到热心网友得到了神器Proxifier,下载地址:https://xclient.info/s/proxifier.html#versions
下载安装后,打开SSR的高级设置,得到 socks5 IP 和 socks5 端口
ip: 127.0.0.1
端口:1086
打开 Proxifier 设置代理
设置路由,切换action为刚才添加的代理
最后重启终端
运行GIT clone
一开始想过用子线程来实现,还好搜索了一下,发现 Android 自带了一个倒计时类,正好适合,这个类就是CountDownTimer
,创建它需要提供两个参数,一个是总计时时间(单位是毫秒),一个是步长,也就是一次走多少毫秒.然后还需要实现它的两个接口.
void onTick(long millisUntilFinished)
void onFinish()
上示例代码
//倒计时60秒,这里不直接写60000,而用1000*60是因为后者看起来更直观,每走一步是1000毫秒也就是1秒
CountDownTimer timer = new CountDownTimer(1000 * 60, 1000) {
@SuppressLint("DefaultLocale")
@Override
public void onTick(long millisUntilFinished) {
button.setEnabled(false);
button.setText(String.format("已发送(%d)",millisUntilFinished/1000));
}
@Override
public void onFinish() {
button.setEnabled(true);
button.setText("重新获取");
}
};
timer.start();
最后一定要记得 start()