reason

U

...@@ -147,7 +147,7 @@ class _AccountPageState extends State<AccountPage> { ...@@ -147,7 +147,7 @@ class _AccountPageState extends State<AccountPage> {
147 ], 147 ],
148 ); 148 );
149 return Scaffold( 149 return Scaffold(
150 - appBar: const MyAppBar( 150 + appBar: MyAppBar(
151 ), 151 ),
152 body: Container( 152 body: Container(
153 decoration: const BoxDecoration( 153 decoration: const BoxDecoration(
......
...@@ -43,7 +43,7 @@ class _CategoriesPageState extends State<CategoriesPage> ...@@ -43,7 +43,7 @@ class _CategoriesPageState extends State<CategoriesPage>
43 return ChangeNotifierProvider<CategoriesPageProvider>( 43 return ChangeNotifierProvider<CategoriesPageProvider>(
44 create: (_) => provider, 44 create: (_) => provider,
45 child: Scaffold( 45 child: Scaffold(
46 - appBar: const MyAppBar( 46 + appBar: MyAppBar(
47 ), 47 ),
48 body: Column( 48 body: Column(
49 key: _bodyKey, 49 key: _bodyKey,
......
...@@ -53,8 +53,8 @@ class _WebViewPageState extends State<WebViewPage> { ...@@ -53,8 +53,8 @@ class _WebViewPageState extends State<WebViewPage> {
53 return Future.value(true); 53 return Future.value(true);
54 }, 54 },
55 child: Scaffold( 55 child: Scaffold(
56 - appBar: MyAppBar( 56 + appBar: const MyAppBar(
57 - centerTitle: widget.title, 57 +
58 ), 58 ),
59 body: Stack( 59 body: Stack(
60 children: [ 60 children: [
......
...@@ -84,7 +84,6 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag ...@@ -84,7 +84,6 @@ class _LoginPageState extends State<LoginPage> with ChangeNotifierMixin<LoginPag
84 return Scaffold( 84 return Scaffold(
85 appBar: MyAppBar( 85 appBar: MyAppBar(
86 isBack: false, 86 isBack: false,
87 - actionName: OnePoemLocalizations.of(context).verificationCodeLogin,
88 onPressed: () { 87 onPressed: () {
89 NavigatorUtils.push(context, LoginRouter.smsLoginPage); 88 NavigatorUtils.push(context, LoginRouter.smsLoginPage);
90 }, 89 },
......
...@@ -73,8 +73,7 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re ...@@ -73,8 +73,7 @@ class _RegisterPageState extends State<RegisterPage> with ChangeNotifierMixin<Re
73 @override 73 @override
74 Widget build(BuildContext context) { 74 Widget build(BuildContext context) {
75 return Scaffold( 75 return Scaffold(
76 - appBar: MyAppBar( 76 + appBar: const MyAppBar(
77 - title: OnePoemLocalizations.of(context).register,
78 ), 77 ),
79 body: MyScrollView( 78 body: MyScrollView(
80 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2, _nodeText3]), 79 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2, _nodeText3]),
......
...@@ -70,8 +70,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi ...@@ -70,8 +70,7 @@ class _ResetPasswordPageState extends State<ResetPasswordPage> with ChangeNotifi
70 @override 70 @override
71 Widget build(BuildContext context) { 71 Widget build(BuildContext context) {
72 return Scaffold( 72 return Scaffold(
73 - appBar: MyAppBar( 73 + appBar: const MyAppBar(
74 - title: OnePoemLocalizations.of(context).forgotPasswordLink,
75 ), 74 ),
76 body: MyScrollView( 75 body: MyScrollView(
77 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2, _nodeText3]), 76 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2, _nodeText3]),
......
...@@ -65,7 +65,7 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM ...@@ -65,7 +65,7 @@ class _SMSLoginPageState extends State<SMSLoginPage> with ChangeNotifierMixin<SM
65 @override 65 @override
66 Widget build(BuildContext context) { 66 Widget build(BuildContext context) {
67 return Scaffold( 67 return Scaffold(
68 - appBar: const MyAppBar(), 68 + appBar: MyAppBar(),
69 body: MyScrollView( 69 body: MyScrollView(
70 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2]), 70 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2]),
71 padding: const EdgeInsets.only(left: 16.0, right: 16.0, top: 20.0), 71 padding: const EdgeInsets.only(left: 16.0, right: 16.0, top: 20.0),
......
...@@ -64,7 +64,6 @@ class _UpdatePasswordPageState extends State<UpdatePasswordPage> with ChangeNoti ...@@ -64,7 +64,6 @@ class _UpdatePasswordPageState extends State<UpdatePasswordPage> with ChangeNoti
64 Widget build(BuildContext context) { 64 Widget build(BuildContext context) {
65 return Scaffold( 65 return Scaffold(
66 appBar: const MyAppBar( 66 appBar: const MyAppBar(
67 - title: '修改密码',
68 ), 67 ),
69 body: MyScrollView( 68 body: MyScrollView(
70 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2]), 69 keyboardConfig: Utils.getKeyboardActionsConfig(context, <FocusNode>[_nodeText1, _nodeText2]),
......
1 +import 'dart:ui';
2 +
1 import 'package:flutter/cupertino.dart'; 3 import 'package:flutter/cupertino.dart';
2 import 'package:flutter/material.dart'; 4 import 'package:flutter/material.dart';
3 import 'package:one_poem/res/gaps.dart'; 5 import 'package:one_poem/res/gaps.dart';
4 import 'package:one_poem/util/theme_utils.dart'; 6 import 'package:one_poem/util/theme_utils.dart';
5 import 'package:one_poem/util/toast_utils.dart'; 7 import 'package:one_poem/util/toast_utils.dart';
8 +import 'package:one_poem/widgets/bars/home_action_bar.dart';
9 +import 'package:one_poem/widgets/bars/home_title_bar.dart';
6 import 'package:one_poem/widgets/load_image.dart'; 10 import 'package:one_poem/widgets/load_image.dart';
7 import 'package:one_poem/widgets/my_app_bar.dart'; 11 import 'package:one_poem/widgets/my_app_bar.dart';
8 12
...@@ -24,36 +28,130 @@ class _PoemDetailPageState extends State<PoemDetailPage> { ...@@ -24,36 +28,130 @@ class _PoemDetailPageState extends State<PoemDetailPage> {
24 @override 28 @override
25 Widget build(BuildContext context) { 29 Widget build(BuildContext context) {
26 return Scaffold( 30 return Scaffold(
27 - // extendBodyBehindAppBar: true,// appbar背景透明
28 appBar: MyAppBar( 31 appBar: MyAppBar(
29 - isShowButtons: true, 32 + isTransparent: false,
30 - funcLeft: () { 33 + homeTitleHeader: HomeTitleHeader(
31 - print("xxxxx"); 34 + funcLeft: () {
32 - }, 35 + print("lefltlelfle");
36 + },
37 + ),
38 + homeActionWidgets: HomeActionWidgets(
39 + funcStar: () {
40 + print("starrrrrrr");
41 + },
42 + ),
33 ), 43 ),
34 body: Container( 44 body: Container(
45 + alignment: Alignment.topCenter,
35 decoration: const BoxDecoration( 46 decoration: const BoxDecoration(
36 - color: Colors.black,
37 image: DecorationImage( 47 image: DecorationImage(
38 image: AssetImage("assets/images/poem/poem_background.png"), 48 image: AssetImage("assets/images/poem/poem_background.png"),
39 fit: BoxFit.fill, 49 fit: BoxFit.fill,
40 ), 50 ),
41 ), 51 ),
42 - child: Column( 52 + child: SafeArea(
43 - crossAxisAlignment: CrossAxisAlignment.start, 53 + child: Column(
44 - children: const [ 54 + crossAxisAlignment: CrossAxisAlignment.start,
45 - Text("题破山寺后禅院"), 55 + children: [
46 - Gaps.vGap24, 56 + Container(
47 - Text("常建"), 57 + margin: const EdgeInsets.symmetric(
48 - Text("清晨入古寺,初日照高林。"), 58 + vertical: 40.0, horizontal: 25.0),
49 - Text("竹径通幽处,禅房花木深。"), 59 + height: 240.0,
50 - Text("山光悦鸟性,潭影空人心。"), 60 + width: double.infinity,
51 - Text("万籁此都寂,但余钟磬音。"), 61 + decoration: BoxDecoration(
52 - Gaps.vGap24, 62 + color: Colors.grey.shade200.withOpacity(0.1),
53 - Text("100位用户朗读拍摄提交了“临境”"), 63 + border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度
54 - ], 64 + borderRadius: BorderRadius.circular(2.0),
65 + ),
66 + child: ClipRect(
67 + child: BackdropFilter(
68 + filter: ImageFilter.blur(
69 + sigmaX: 10.0,
70 + sigmaY: 10.0,
71 + ),
72 + child: Container(
73 + decoration: BoxDecoration(
74 + color: Colors.grey.shade200.withOpacity(0.1),
75 + ),
76 + child: Padding(
77 + padding: const EdgeInsets.all(10.0),
78 + child: Column(
79 + children: const [
80 + Text(
81 + "题破山寺后禅院",
82 + style: TextStyle(
83 + fontSize: 24.0,
84 + color: Colors.white,
85 + ),
86 + ),
87 + Gaps.vGap16,
88 + Text(
89 + "常建",
90 + style: TextStyle(
91 + fontSize: 18.0,
92 + color: Colors.white,
93 + ),
94 + ),
95 + Gaps.vGap12,
96 + Text(
97 + "清晨入古寺,初日照高林。\n竹径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。",
98 + style: TextStyle(
99 + color: Colors.white,
100 + fontFamily: "ZCOOLXiaoWei",
101 + fontSize: 24.0),
102 + ),
103 + ],
104 + ),
105 + ),
106 + ),
107 + ),
108 + ),
109 + ),
110 + const Padding(
111 + padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 25.0),
112 + child: Text(
113 + "100位用户朗读录制提交了“临境”",
114 + style: TextStyle(color: Colors.black, fontSize: 16.0),
115 + ),
116 + ),
117 + Container(
118 + padding: const EdgeInsets.symmetric(
119 + vertical: 10.0, horizontal: 25.0),
120 + width: 400.0,
121 + height: 160.0,
122 + child: ListView.builder(
123 + itemBuilder: (BuildContext context, int index) {
124 + return Wrap(
125 + spacing: 5.0,
126 + crossAxisAlignment: WrapCrossAlignment.center,
127 + children: const [
128 + Icon(
129 + Icons.play_circle_outline,
130 + size: 16.0,
131 + ),
132 + Text(
133 + "普通话",
134 + style: TextStyle(color: Colors.white, fontSize: 16.0),
135 + )
136 + ],
137 + );
138 + }),
139 + ),
140 + Row(
141 + children: [
142 + IconButton(
143 + icon: const Icon(Icons.mic_none),
144 + onPressed: () {},
145 + ),
146 + IconButton(
147 + icon: const Icon(Icons.camera_alt_outlined),
148 + onPressed: () {},
149 + )
150 + ],
151 + ),
152 + ],
153 + ),
55 ), 154 ),
56 - alignment: Alignment.topLeft,
57 ), 155 ),
58 ); 156 );
59 } 157 }
......
...@@ -10,6 +10,7 @@ import 'package:one_poem/tiktok/widgets/tiktok_video.dart'; ...@@ -10,6 +10,7 @@ import 'package:one_poem/tiktok/widgets/tiktok_video.dart';
10 import 'package:one_poem/tiktok/widgets/tiktok_video_button_column.dart'; 10 import 'package:one_poem/tiktok/widgets/tiktok_video_button_column.dart';
11 import 'package:one_poem/tiktok/widgets/tiktok_video_poem.dart'; 11 import 'package:one_poem/tiktok/widgets/tiktok_video_poem.dart';
12 import 'package:one_poem/util/toast_utils.dart'; 12 import 'package:one_poem/util/toast_utils.dart';
13 +import 'package:one_poem/widgets/bars/home_action_bar.dart';
13 import 'package:one_poem/widgets/my_app_bar.dart'; 14 import 'package:one_poem/widgets/my_app_bar.dart';
14 import 'package:video_player/video_player.dart'; 15 import 'package:video_player/video_player.dart';
15 16
...@@ -107,6 +108,12 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { ...@@ -107,6 +108,12 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver {
107 controller: tkController, 108 controller: tkController,
108 header: MyAppBar( 109 header: MyAppBar(
109 isBack: false, 110 isBack: false,
111 + isTransparent: true,
112 + homeActionWidgets: HomeActionWidgets(
113 + funcStar: () {
114 + print("starrrrrrr");
115 + },
116 + ),
110 ), 117 ),
111 leftPage: searchPage, 118 leftPage: searchPage,
112 rightPage: detailPage, 119 rightPage: detailPage,
......
...@@ -10,7 +10,6 @@ class NotFoundPage extends StatelessWidget { ...@@ -10,7 +10,6 @@ class NotFoundPage extends StatelessWidget {
10 Widget build(BuildContext context) { 10 Widget build(BuildContext context) {
11 return const Scaffold( 11 return const Scaffold(
12 appBar: MyAppBar( 12 appBar: MyAppBar(
13 - centerTitle: '页面不存在',
14 ), 13 ),
15 body: StateLayout( 14 body: StateLayout(
16 type: StateType.account, 15 type: StateType.account,
......
...@@ -69,7 +69,6 @@ class _AboutPageState extends State<AboutPage> { ...@@ -69,7 +69,6 @@ class _AboutPageState extends State<AboutPage> {
69 Widget build(BuildContext context) { 69 Widget build(BuildContext context) {
70 return Scaffold( 70 return Scaffold(
71 appBar: const MyAppBar( 71 appBar: const MyAppBar(
72 - title: '关于我们',
73 ), 72 ),
74 body: Column( 73 body: Column(
75 children: <Widget>[ 74 children: <Widget>[
......
...@@ -5,10 +5,8 @@ import 'package:one_poem/widgets/click_item.dart'; ...@@ -5,10 +5,8 @@ import 'package:one_poem/widgets/click_item.dart';
5 import 'package:one_poem/widgets/load_image.dart'; 5 import 'package:one_poem/widgets/load_image.dart';
6 import 'package:one_poem/widgets/my_app_bar.dart'; 6 import 'package:one_poem/widgets/my_app_bar.dart';
7 7
8 -
9 /// design/8设置/index.html#artboard1 8 /// design/8设置/index.html#artboard1
10 class AccountManagerPage extends StatefulWidget { 9 class AccountManagerPage extends StatefulWidget {
11 -
12 const AccountManagerPage({Key? key}) : super(key: key); 10 const AccountManagerPage({Key? key}) : super(key: key);
13 11
14 @override 12 @override
...@@ -19,16 +17,12 @@ class _AccountManagerPageState extends State<AccountManagerPage> { ...@@ -19,16 +17,12 @@ class _AccountManagerPageState extends State<AccountManagerPage> {
19 @override 17 @override
20 Widget build(BuildContext context) { 18 Widget build(BuildContext context) {
21 return Scaffold( 19 return Scaffold(
22 - appBar: const MyAppBar( 20 + appBar: MyAppBar(),
23 - ),
24 body: Column( 21 body: Column(
25 children: <Widget>[ 22 children: <Widget>[
26 Stack( 23 Stack(
27 children: <Widget>[ 24 children: <Widget>[
28 - ClickItem( 25 + ClickItem(title: '店铺logo', onTap: () {}),
29 - title: '店铺logo',
30 - onTap: () {}
31 - ),
32 const Positioned( 26 const Positioned(
33 top: 8.0, 27 top: 8.0,
34 bottom: 8.0, 28 bottom: 8.0,
...@@ -38,10 +32,10 @@ class _AccountManagerPageState extends State<AccountManagerPage> { ...@@ -38,10 +32,10 @@ class _AccountManagerPageState extends State<AccountManagerPage> {
38 ], 32 ],
39 ), 33 ),
40 ClickItem( 34 ClickItem(
41 - title: '修改密码', 35 + title: '修改密码',
42 - content: '用于密码登录', 36 + content: '用于密码登录',
43 - onTap: () => NavigatorUtils.push(context, LoginRouter.updatePasswordPage) 37 + onTap: () =>
44 - ), 38 + NavigatorUtils.push(context, LoginRouter.updatePasswordPage)),
45 const ClickItem( 39 const ClickItem(
46 title: '绑定账号', 40 title: '绑定账号',
47 content: '15000000000', 41 content: '15000000000',
......
...@@ -7,7 +7,6 @@ import 'package:one_poem/widgets/my_app_bar.dart'; ...@@ -7,7 +7,6 @@ import 'package:one_poem/widgets/my_app_bar.dart';
7 import 'package:provider/provider.dart'; 7 import 'package:provider/provider.dart';
8 8
9 class LocalePage extends StatefulWidget { 9 class LocalePage extends StatefulWidget {
10 -
11 const LocalePage({Key? key}) : super(key: key); 10 const LocalePage({Key? key}) : super(key: key);
12 11
13 @override 12 @override
...@@ -15,14 +14,13 @@ class LocalePage extends StatefulWidget { ...@@ -15,14 +14,13 @@ class LocalePage extends StatefulWidget {
15 } 14 }
16 15
17 class _LocalePageState extends State<LocalePage> { 16 class _LocalePageState extends State<LocalePage> {
18 -
19 final List<String> _list = <String>['跟随系统', '中文', 'English']; 17 final List<String> _list = <String>['跟随系统', '中文', 'English'];
20 18
21 @override 19 @override
22 Widget build(BuildContext context) { 20 Widget build(BuildContext context) {
23 final String? locale = SpUtil.getString(Constant.locale); 21 final String? locale = SpUtil.getString(Constant.locale);
24 String localeMode; 22 String localeMode;
25 - switch(locale) { 23 + switch (locale) {
26 case 'zh': 24 case 'zh':
27 localeMode = _list[1]; 25 localeMode = _list[1];
28 break; 26 break;
...@@ -35,7 +33,6 @@ class _LocalePageState extends State<LocalePage> { ...@@ -35,7 +33,6 @@ class _LocalePageState extends State<LocalePage> {
35 } 33 }
36 return Scaffold( 34 return Scaffold(
37 appBar: const MyAppBar( 35 appBar: const MyAppBar(
38 - title: '多语言',
39 ), 36 ),
40 body: ListView.separated( 37 body: ListView.separated(
41 itemCount: _list.length, 38 itemCount: _list.length,
...@@ -43,7 +40,8 @@ class _LocalePageState extends State<LocalePage> { ...@@ -43,7 +40,8 @@ class _LocalePageState extends State<LocalePage> {
43 itemBuilder: (_, int index) { 40 itemBuilder: (_, int index) {
44 return InkWell( 41 return InkWell(
45 onTap: () { 42 onTap: () {
46 - final String locale = index == 0 ? '' : (index == 1 ? 'zh' : 'en'); 43 + final String locale =
44 + index == 0 ? '' : (index == 1 ? 'zh' : 'en');
47 context.read<LocaleProvider>().setLocale(locale); 45 context.read<LocaleProvider>().setLocale(locale);
48 Toast.show('当前功能仅登录模块有效'); 46 Toast.show('当前功能仅登录模块有效');
49 setState(() {}); 47 setState(() {});
......
...@@ -25,8 +25,7 @@ class _SettingPageState extends State<SettingPage> { ...@@ -25,8 +25,7 @@ class _SettingPageState extends State<SettingPage> {
25 @override 25 @override
26 Widget build(BuildContext context) { 26 Widget build(BuildContext context) {
27 return Scaffold( 27 return Scaffold(
28 - appBar: const MyAppBar( 28 + appBar: const MyAppBar(
29 - centerTitle: '设置',
30 ), 29 ),
31 body: Column( 30 body: Column(
32 children: <Widget>[ 31 children: <Widget>[
......
...@@ -6,7 +6,6 @@ import 'package:one_poem/widgets/my_app_bar.dart'; ...@@ -6,7 +6,6 @@ import 'package:one_poem/widgets/my_app_bar.dart';
6 import 'package:provider/provider.dart'; 6 import 'package:provider/provider.dart';
7 7
8 class ThemePage extends StatefulWidget { 8 class ThemePage extends StatefulWidget {
9 -
10 const ThemePage({Key? key}) : super(key: key); 9 const ThemePage({Key? key}) : super(key: key);
11 10
12 @override 11 @override
...@@ -14,14 +13,13 @@ class ThemePage extends StatefulWidget { ...@@ -14,14 +13,13 @@ class ThemePage extends StatefulWidget {
14 } 13 }
15 14
16 class _ThemePageState extends State<ThemePage> { 15 class _ThemePageState extends State<ThemePage> {
17 -
18 final List<String> _list = <String>['跟随系统', '开启', '关闭']; 16 final List<String> _list = <String>['跟随系统', '开启', '关闭'];
19 17
20 @override 18 @override
21 Widget build(BuildContext context) { 19 Widget build(BuildContext context) {
22 final String? theme = SpUtil.getString(Constant.theme); 20 final String? theme = SpUtil.getString(Constant.theme);
23 String themeMode; 21 String themeMode;
24 - switch(theme) { 22 + switch (theme) {
25 case 'Dark': 23 case 'Dark':
26 themeMode = _list[1]; 24 themeMode = _list[1];
27 break; 25 break;
...@@ -33,16 +31,16 @@ class _ThemePageState extends State<ThemePage> { ...@@ -33,16 +31,16 @@ class _ThemePageState extends State<ThemePage> {
33 break; 31 break;
34 } 32 }
35 return Scaffold( 33 return Scaffold(
36 - appBar: const MyAppBar( 34 + appBar: const MyAppBar(),
37 - title: '夜间模式',
38 - ),
39 body: ListView.separated( 35 body: ListView.separated(
40 itemCount: _list.length, 36 itemCount: _list.length,
41 separatorBuilder: (_, __) => const Divider(), 37 separatorBuilder: (_, __) => const Divider(),
42 itemBuilder: (_, int index) { 38 itemBuilder: (_, int index) {
43 return InkWell( 39 return InkWell(
44 onTap: () { 40 onTap: () {
45 - final ThemeMode themeMode = index == 0 ? ThemeMode.system : (index == 1 ? ThemeMode.dark : ThemeMode.light); 41 + final ThemeMode themeMode = index == 0
42 + ? ThemeMode.system
43 + : (index == 1 ? ThemeMode.dark : ThemeMode.light);
46 // Provider.of<ThemeProvider>(context, listen: false).setTheme(themeMode); 44 // Provider.of<ThemeProvider>(context, listen: false).setTheme(themeMode);
47 /// 与上方等价,provider 4.1.0添加的拓展方法 45 /// 与上方等价,provider 4.1.0添加的拓展方法
48 context.read<ThemeProvider>().setTheme(themeMode); 46 context.read<ThemeProvider>().setTheme(themeMode);
......
1 +import 'dart:ui';
2 +
1 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
4 +import 'package:one_poem/res/resources.dart';
2 import 'package:one_poem/tiktok/style/style.dart'; 5 import 'package:one_poem/tiktok/style/style.dart';
3 6
4 class TikTokTopInfoColumn extends StatelessWidget { 7 class TikTokTopInfoColumn extends StatelessWidget {
...@@ -12,28 +15,43 @@ class TikTokTopInfoColumn extends StatelessWidget { ...@@ -12,28 +15,43 @@ class TikTokTopInfoColumn extends StatelessWidget {
12 15
13 @override 16 @override
14 Widget build(BuildContext context) { 17 Widget build(BuildContext context) {
15 - return Container( 18 + return SafeArea(
16 - margin: const EdgeInsets.all(10.0), 19 + child: Container(
17 - child: Column( 20 + margin: const EdgeInsets.symmetric(vertical: 40.0, horizontal: 25.0),
18 - mainAxisAlignment: MainAxisAlignment.end, 21 + height: 100.0,
19 - crossAxisAlignment: CrossAxisAlignment.end, 22 + width: double.infinity,
20 - children: <Widget>[ 23 + decoration: BoxDecoration(
21 - // Tapped( 24 + color: Colors.grey.shade200.withOpacity(0.1),
22 - // child: const TikTokAvatar(), 25 + border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度
23 - // onTap: onAvatar, 26 + borderRadius: BorderRadius.circular(2.0),
24 - // ), 27 + ),
25 - Text(info ?? "早安"), 28 + child: ClipRect(
26 - Container( 29 + child: BackdropFilter(
27 - width: SysSize.avatar, 30 + filter: ImageFilter.blur(
28 - height: SysSize.avatar, 31 + sigmaX: 10.0,
29 - margin: const EdgeInsets.only(top: 10), 32 + sigmaY: 10.0,
33 + ),
34 + child: Container(
30 decoration: BoxDecoration( 35 decoration: BoxDecoration(
31 - borderRadius: BorderRadius.circular(SysSize.avatar / 2.0), 36 + color: Colors.grey.shade200.withOpacity(0.1),
32 - // color: Colors.black.withOpacity(0.8), 37 + ),
38 + child: Padding(
39 + padding: const EdgeInsets.all(10.0),
40 + child: Column(
41 + children: const [
42 + Text(
43 + '早安',
44 + style: TextStyle(
45 + fontSize: 28.0,
46 + color: Colors.white,
47 + ),
48 + ),
49 + ],
50 + ),
33 ), 51 ),
34 - ) 52 + ),
35 - ], 53 + ),
36 ), 54 ),
37 - ); 55 + ));
38 } 56 }
39 } 57 }
......
...@@ -96,7 +96,7 @@ class TikTokVideoPage extends StatelessWidget { ...@@ -96,7 +96,7 @@ class TikTokVideoPage extends StatelessWidget {
96 Container( 96 Container(
97 height: double.infinity, 97 height: double.infinity,
98 width: double.infinity, 98 width: double.infinity,
99 - alignment: Alignment.bottomLeft, 99 + alignment: Alignment.bottomCenter,
100 child: leftPoem, 100 child: leftPoem,
101 ), 101 ),
102 Container( 102 Container(
......
...@@ -23,12 +23,13 @@ class TikTokVidePoem extends StatelessWidget { ...@@ -23,12 +23,13 @@ class TikTokVidePoem extends StatelessWidget {
23 Widget build(BuildContext context) { 23 Widget build(BuildContext context) {
24 return Container( 24 return Container(
25 decoration: BoxDecoration( 25 decoration: BoxDecoration(
26 - color: Colors.black.withOpacity(.5), 26 + color: Colors.grey.shade200.withOpacity(0.1),
27 border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度 27 border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度
28 borderRadius: BorderRadius.circular(2.0), 28 borderRadius: BorderRadius.circular(2.0),
29 ), 29 ),
30 height: 220.0, 30 height: 220.0,
31 - margin: const EdgeInsets.all(10.0), 31 + width: double.infinity,
32 + margin: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 25.0),
32 child: InkWell( 33 child: InkWell(
33 child: ClipRect( 34 child: ClipRect(
34 child: BackdropFilter( 35 child: BackdropFilter(
...@@ -46,8 +47,15 @@ class TikTokVidePoem extends StatelessWidget { ...@@ -46,8 +47,15 @@ class TikTokVidePoem extends StatelessWidget {
46 children: [ 47 children: [
47 Text( 48 Text(
48 title ?? '每日一言', 49 title ?? '每日一言',
50 +<<<<<<< HEAD
49 style: 51 style:
50 const TextStyle(color: Colors.white, fontSize: 28.0), 52 const TextStyle(color: Colors.white, fontSize: 28.0),
53 +=======
54 + style: const TextStyle(
55 + fontSize: 28.0,
56 + color: Colors.white,
57 + ),
58 +>>>>>>> 9fecb8a6ef8a0360e7ff66980f084c393cc257ed
51 ), 59 ),
52 Gaps.vGap10, 60 Gaps.vGap10,
53 Text( 61 Text(
...@@ -59,8 +67,15 @@ class TikTokVidePoem extends StatelessWidget { ...@@ -59,8 +67,15 @@ class TikTokVidePoem extends StatelessWidget {
59 ), 67 ),
60 Text( 68 Text(
61 author ?? '诗人', 69 author ?? '诗人',
70 +<<<<<<< HEAD
62 style: 71 style:
63 const TextStyle(color: Colors.white, fontSize: 16.0), 72 const TextStyle(color: Colors.white, fontSize: 16.0),
73 +=======
74 + style: const TextStyle(
75 + fontSize: 16.0,
76 + color: Colors.white,
77 + ),
78 +>>>>>>> 9fecb8a6ef8a0360e7ff66980f084c393cc257ed
64 ), 79 ),
65 ], 80 ],
66 ), 81 ),
...@@ -69,7 +84,7 @@ class TikTokVidePoem extends StatelessWidget { ...@@ -69,7 +84,7 @@ class TikTokVidePoem extends StatelessWidget {
69 ), 84 ),
70 ), 85 ),
71 onTap: () { 86 onTap: () {
72 - onShowDetail; 87 + onShowDetail!();
73 }, 88 },
74 ), 89 ),
75 ); 90 );
......
1 +import 'package:flutter/material.dart';
2 +import 'package:one_poem/res/resources.dart';
3 +
4 +class HomeActionWidgets extends StatelessWidget {
5 + const HomeActionWidgets({
6 + Key? key,
7 + this.funcStar,
8 + this.funcShare,
9 + this.funcMore,
10 + }) : super(key: key);
11 +
12 + final Function? funcStar;
13 + final Function? funcShare;
14 + final Function? funcMore;
15 +
16 + @override
17 + Widget build(BuildContext context) {
18 + const iconHeight = 30.0;
19 + const iconWidth = 30.0;
20 + const iconSize = 20.0;
21 + return Row(
22 + mainAxisSize: MainAxisSize.min,
23 + mainAxisAlignment: MainAxisAlignment.center,
24 + children: [
25 + SizedBox(
26 + height: iconHeight,
27 + width: iconWidth,
28 + child: IconButton(
29 + padding: const EdgeInsets.all(0.0),
30 + icon: const Icon(
31 + Icons.star_border,
32 + size: iconSize,
33 + ),
34 + onPressed: () {
35 + funcStar!();
36 + },
37 + ),
38 + ),
39 + SizedBox(
40 + height: iconHeight,
41 + width: iconWidth,
42 + child: IconButton(
43 + padding: const EdgeInsets.all(0.0),
44 + icon: const Icon(
45 + Icons.ios_share,
46 + size: iconSize,
47 + ),
48 + onPressed: () {},
49 + ),
50 + ),
51 + SizedBox(
52 + height: iconHeight,
53 + width: iconWidth,
54 + child: IconButton(
55 + padding: const EdgeInsets.all(0.0),
56 + onPressed: () {},
57 + icon: const Icon(
58 + Icons.more_horiz,
59 + size: iconSize,
60 + ),
61 + ),
62 + ),
63 + ],
64 + );
65 + }
66 +}
1 +import 'package:flutter/material.dart';
2 +
3 +class HomeTitleHeader extends StatelessWidget {
4 + const HomeTitleHeader({
5 + Key? key,
6 + this.funcLeft,
7 + this.funcCenter,
8 + this.funcRight,
9 + }) : super(key: key);
10 +
11 + final Function? funcLeft;
12 + final Function? funcCenter;
13 + final Function? funcRight;
14 +
15 + @override
16 + Widget build(BuildContext context) {
17 + return Container(
18 + alignment: Alignment.center,
19 + margin: const EdgeInsets.symmetric(horizontal: 5.0),
20 + child: Row(
21 + mainAxisAlignment: MainAxisAlignment.spaceBetween,
22 + mainAxisSize: MainAxisSize.min,
23 + //交叉轴的布局方式,对于column来说就是水平方向的布局方式
24 + crossAxisAlignment: CrossAxisAlignment.center,
25 + children: <Widget>[
26 + SizedBox(
27 + width: 60.0,
28 + child: TextButton(
29 + onPressed: () => funcLeft!(),
30 + child: const Text(
31 + "一言",
32 + style: TextStyle(color: Colors.white),
33 + ),
34 + ),
35 + ),
36 + const VerticalDivider(
37 + color: Colors.white,
38 + width: 1.0,
39 + thickness: 1.0,
40 + indent: 15.0,
41 + endIndent: 15.0,
42 + ),
43 + TextButton(
44 + onPressed: () => funcCenter!(),
45 + child: const Text(
46 + "译解",
47 + style: TextStyle(color: Colors.white),
48 + ),
49 + ),
50 + const VerticalDivider(
51 + color: Colors.white,
52 + width: 1.0,
53 + thickness: 1.0,
54 + indent: 15.0,
55 + endIndent: 15.0,
56 + ),
57 + TextButton(
58 + onPressed: () => funcRight!(),
59 + child: const Text(
60 + "临境",
61 + style: TextStyle(color: Colors.white),
62 + ),
63 + ),
64 + ],
65 + ));
66 + }
67 +}
...@@ -8,38 +8,20 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -8,38 +8,20 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
8 const MyAppBar({ 8 const MyAppBar({
9 Key? key, 9 Key? key,
10 this.backgroundColor, 10 this.backgroundColor,
11 - this.title = '',
12 - this.centerTitle = '',
13 - this.actionName = '',
14 - this.backImg = 'assets/images/ic_back_black.png',
15 - this.backImgColor,
16 this.onPressed, 11 this.onPressed,
17 this.isBack = true, 12 this.isBack = true,
18 - this.buttonLeft, 13 + this.homeTitleHeader,
19 - this.funcLeft, 14 + this.homeActionWidgets,
20 - this.buttonCenter, 15 + this.isTransparent = false,
21 - this.funcCenter,
22 - this.buttonRight,
23 - this.funcRight,
24 - this.isShowButtons = false,
25 }) : super(key: key); 16 }) : super(key: key);
26 17
27 final Color? backgroundColor; 18 final Color? backgroundColor;
28 - final String title;
29 - final String centerTitle;
30 - final String backImg;
31 - final Color? backImgColor;
32 - final String actionName;
33 final VoidCallback? onPressed; 19 final VoidCallback? onPressed;
34 final bool isBack; 20 final bool isBack;
35 - final bool isShowButtons; 21 + final bool isTransparent;
36 22
37 - final String? buttonLeft; 23 + final Widget? homeTitleHeader;
38 - final Function? funcLeft; 24 + final Widget? homeActionWidgets;
39 - final String? buttonCenter;
40 - final Function? funcCenter;
41 - final String? buttonRight;
42 - final Function? funcRight;
43 25
44 @override 26 @override
45 Widget build(BuildContext context) { 27 Widget build(BuildContext context) {
...@@ -51,6 +33,7 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -51,6 +33,7 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
51 ? SystemUiOverlayStyle.light 33 ? SystemUiOverlayStyle.light
52 : SystemUiOverlayStyle.dark; 34 : SystemUiOverlayStyle.dark;
53 35
36 +<<<<<<< HEAD
54 final Widget action = actionName.isNotEmpty 37 final Widget action = actionName.isNotEmpty
55 ? Positioned( 38 ? Positioned(
56 right: 0.0, 39 right: 0.0,
...@@ -84,6 +67,8 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -84,6 +67,8 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
84 ) 67 )
85 : Gaps.empty; 68 : Gaps.empty;
86 69
70 +=======
71 +>>>>>>> 9fecb8a6ef8a0360e7ff66980f084c393cc257ed
87 final Widget back = isBack 72 final Widget back = isBack
88 ? IconButton( 73 ? IconButton(
89 onPressed: () async { 74 onPressed: () async {
...@@ -95,13 +80,11 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -95,13 +80,11 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
95 }, 80 },
96 tooltip: '返回', 81 tooltip: '返回',
97 padding: const EdgeInsets.all(12.0), 82 padding: const EdgeInsets.all(12.0),
98 - icon: Image.asset( 83 + icon: const Icon(Icons.arrow_back_ios_outlined),
99 - backImg,
100 - color: backImgColor ?? ThemeUtils.getIconColor(context),
101 - ),
102 ) 84 )
103 : Gaps.empty; 85 : Gaps.empty;
104 86
87 +<<<<<<< HEAD
105 // TODO 复用组件 88 // TODO 复用组件
106 final Widget titleWidget = Semantics( 89 final Widget titleWidget = Semantics(
107 namesRoute: true, 90 namesRoute: true,
...@@ -145,11 +128,14 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -145,11 +128,14 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
145 : Gaps.hGap10, 128 : Gaps.hGap10,
146 ); 129 );
147 130
131 +=======
132 +>>>>>>> 9fecb8a6ef8a0360e7ff66980f084c393cc257ed
148 return AnnotatedRegion<SystemUiOverlayStyle>( 133 return AnnotatedRegion<SystemUiOverlayStyle>(
149 value: _overlayStyle, 134 value: _overlayStyle,
150 child: Material( 135 child: Material(
151 - color: Colors.transparent, 136 + color: isTransparent ? Colors.transparent : Colors.black,
152 child: SafeArea( 137 child: SafeArea(
138 +<<<<<<< HEAD
153 child: Flex( 139 child: Flex(
154 direction: Axis.horizontal, 140 direction: Axis.horizontal,
155 children: [ 141 children: [
...@@ -164,6 +150,24 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { ...@@ -164,6 +150,24 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
164 Expanded( 150 Expanded(
165 child: action, 151 child: action,
166 flex: 2, 152 flex: 2,
153 +=======
154 + child: Stack(
155 + alignment: Alignment.center,
156 + children: <Widget>[
157 + Positioned(
158 + left: 5,
159 + child: back,
160 + ),
161 + SizedBox(
162 + width: MediaQuery.of(context).size.width,
163 + child: homeTitleHeader,
164 + ),
165 + SizedBox(
166 + child: Container(
167 + alignment: Alignment.centerRight,
168 + child: homeActionWidgets,
169 + ),
170 +>>>>>>> 9fecb8a6ef8a0360e7ff66980f084c393cc257ed
167 ), 171 ),
168 ], 172 ],
169 ), 173 ),
......