guide_common_scaffold.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
class GuideCommonScaffold extends StatelessWidget {
const GuideCommonScaffold({
super.key,
required this.child,
this.bottom,
this.actions = const [],
this.onBackPressed,
});
final Widget child;
final Widget? bottom;
final List<Widget> actions;
final VoidCallback? onBackPressed;
@override
Widget build(BuildContext context) {
final bottomInset = MediaQuery.paddingOf(context).bottom;
return AnnotatedRegion<SystemUiOverlayStyle>(
value: const SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.dark,
statusBarBrightness: Brightness.light,
systemNavigationBarColor: Colors.transparent,
systemNavigationBarIconBrightness: Brightness.dark,
),
child: Scaffold(
backgroundColor: Colors.white,
extendBodyBehindAppBar: true,
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0,
scrolledUnderElevation: 0,
toolbarHeight: 44,
leadingWidth: 52,
leading: IconButton(
onPressed: onBackPressed ??
() {
if (Get.key.currentState?.canPop() ?? false) {
Get.back();
} else {
SystemNavigator.pop();
}
},
icon: Image.asset(
'assets/images/common/ic_nav_back.webp',
width: 24,
height: 24,
),
),
actions: actions,
),
body: Stack(
fit: StackFit.expand,
children: [
const DecoratedBox(
decoration: BoxDecoration(
gradient: LinearGradient(
begin: Alignment(0.50, -0.00),
end: Alignment(0.50, 1.00),
colors: [
const Color(0xFFE6DAFF),
const Color(0xFFECE4FF),
const Color(0xFFEEE6FF),
const Color(0xFFF8F6FF)
],
// stops: [0, 0.33173, 0.74038, 1],
),
),
),
child,
if (bottom != null)
Positioned(
left: 0,
right: 0,
bottom: bottomInset + 36,
child: Material(
type: MaterialType.transparency,
child: bottom!,
),
),
],
),
),
);
}
}