order_track_page.dart
2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import 'package:flutter/material.dart';
import 'package:one_poem/res/resources.dart';
import 'package:one_poem/widgets/my_app_bar.dart';
import 'package:one_poem/widgets/my_scroll_view.dart';
/// design/3订单/index.html#artboard10
class OrderTrackPage extends StatefulWidget {
const OrderTrackPage({Key? key}) : super(key: key);
@override
_OrderTrackPageState createState() => _OrderTrackPageState();
}
class _OrderTrackPageState extends State<OrderTrackPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const MyAppBar(
centerTitle: '订单跟踪',
),
body: MyScrollView(
children: <Widget>[
Padding(
padding: const EdgeInsets.only(top: 21.0, left: 16.0, right: 16.0),
child: Row(
children: <Widget>[
const Text('订单编号:'),
// 可选择文本组件(复制)
Semantics(
label: '长按复制订单编号',
child: const SelectableText('14562364879', maxLines: 1,),
),
],
)
),
Stepper(
physics: const BouncingScrollPhysics(),
currentStep: 4 - 1,
// flutter 2.8.0以下使用:
// controlsBuilder: (_, {onStepContinue, onStepCancel}) {
// TODO
// controlsBuilder: (_, __) {
// return Gaps.empty; //操作按钮置空
// },
steps: List.generate(4, (i) => _buildStep(i)),
)
],
)
);
}
final List<String> _titleList = ['订单已完成', '开始配送', '等待配送', '收到新订单'];
final List<String> _timeList = ['2019/08/30 13:30', '2019/08/30 11:30', '2019/08/30 9:30', '2019/08/30 9:00'];
Step _buildStep(int index) {
final Color primaryColor = Theme.of(context).primaryColor;
return Step(
title: Padding(
padding: const EdgeInsets.only(top: 15.0),
child: Text(_titleList[index], style: index == 0 ? TextStyle(
fontSize: Dimens.font_sp14,
color: primaryColor,
) : Theme.of(context).textTheme.bodyText2),
),
subtitle: Text(_timeList[index], style: index == 0 ? TextStyle(
fontSize: Dimens.font_sp12,
color: primaryColor,
) : Theme.of(context).textTheme.subtitle2),
content: const Text(''),
isActive: index == 0,
// TODO(weilu): 这里的状态图标无法修改,暂时使用原生的。应该可以复制Step代码修改一下。
state: index == 0 ? StepState.complete : StepState.indexed,
);
}
}