Showing
9 changed files
with
52 additions
and
29 deletions
1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
2 | package="com.mofunsky.one_poem"> | 2 | package="com.mofunsky.one_poem"> |
3 | <application | 3 | <application |
4 | - android:label="one_poem" | 4 | + android:label="一言" |
5 | android:icon="@mipmap/ic_launcher"> | 5 | android:icon="@mipmap/ic_launcher"> |
6 | <activity | 6 | <activity |
7 | android:name=".MainActivity" | 7 | android:name=".MainActivity" | ... | ... |
... | @@ -10,7 +10,9 @@ class AccountRouter implements IRouterProvider{ | ... | @@ -10,7 +10,9 @@ class AccountRouter implements IRouterProvider{ |
10 | 10 | ||
11 | @override | 11 | @override |
12 | void initRouter(FluroRouter router) { | 12 | void initRouter(FluroRouter router) { |
13 | - router.define(accountPage, handler: Handler(handlerFunc: (_, __) => const AccountPage())); | 13 | + router.define(accountPage, handler: Handler(handlerFunc: (_, __) { |
14 | + return const AccountPage(isSelfPage: true,); | ||
15 | + })); | ||
14 | } | 16 | } |
15 | 17 | ||
16 | } | 18 | } | ... | ... |
This diff is collapsed. Click to expand it.
1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
2 | +import 'package:one_poem/account/page/account_page.dart'; | ||
2 | import 'package:one_poem/goods/page/goods_page.dart'; | 3 | import 'package:one_poem/goods/page/goods_page.dart'; |
3 | import 'package:one_poem/poem/page/poem_page.dart'; | 4 | import 'package:one_poem/poem/page/poem_page.dart'; |
4 | import 'package:one_poem/res/resources.dart'; | 5 | import 'package:one_poem/res/resources.dart'; |
... | @@ -45,7 +46,7 @@ class _HomeState extends State<Home> with RestorationMixin { | ... | @@ -45,7 +46,7 @@ class _HomeState extends State<Home> with RestorationMixin { |
45 | const PoemPage(), | 46 | const PoemPage(), |
46 | const GoodsPage(), | 47 | const GoodsPage(), |
47 | const NotFoundPage(), | 48 | const NotFoundPage(), |
48 | - const ShopPage(), | 49 | + const AccountPage(), |
49 | ]; | 50 | ]; |
50 | } | 51 | } |
51 | 52 | ... | ... |
... | @@ -46,13 +46,18 @@ Future<void> main() async { | ... | @@ -46,13 +46,18 @@ Future<void> main() async { |
46 | /// sp初始化 | 46 | /// sp初始化 |
47 | await SpUtil.getInstance(); | 47 | await SpUtil.getInstance(); |
48 | 48 | ||
49 | + WidgetsFlutterBinding.ensureInitialized(); | ||
50 | + SystemChrome.setPreferredOrientations( | ||
51 | + [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]); | ||
52 | + | ||
49 | /// 1.22 预览功能: 在输入频率与显示刷新率不匹配情况下提供平滑的滚动效果 | 53 | /// 1.22 预览功能: 在输入频率与显示刷新率不匹配情况下提供平滑的滚动效果 |
50 | // GestureBinding.instance?.resamplingEnabled = true; | 54 | // GestureBinding.instance?.resamplingEnabled = true; |
51 | /// 异常处理 | 55 | /// 异常处理 |
52 | handleError(() => runApp(MyApp())); | 56 | handleError(() => runApp(MyApp())); |
53 | 57 | ||
54 | /// 隐藏状态栏。为启动页、引导页设置。完成后修改回显示状态栏。 | 58 | /// 隐藏状态栏。为启动页、引导页设置。完成后修改回显示状态栏。 |
55 | - SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: [SystemUiOverlay.bottom]); | 59 | + SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, |
60 | + overlays: [SystemUiOverlay.bottom]); | ||
56 | // TODO(weilu): 启动体验不佳。状态栏、导航栏在冷启动开始的一瞬间为黑色,且无法通过隐藏、修改颜色等方式进行处理。。。 | 61 | // TODO(weilu): 启动体验不佳。状态栏、导航栏在冷启动开始的一瞬间为黑色,且无法通过隐藏、修改颜色等方式进行处理。。。 |
57 | // 相关问题跟踪:https://github.com/flutter/flutter/issues/73351 | 62 | // 相关问题跟踪:https://github.com/flutter/flutter/issues/73351 |
58 | } | 63 | } |
... | @@ -108,10 +113,7 @@ class MyApp extends StatelessWidget { | ... | @@ -108,10 +113,7 @@ class MyApp extends StatelessWidget { |
108 | 113 | ||
109 | quickActions.setShortcutItems(<ShortcutItem>[ | 114 | quickActions.setShortcutItems(<ShortcutItem>[ |
110 | const ShortcutItem( | 115 | const ShortcutItem( |
111 | - type: 'demo', | 116 | + type: 'demo', localizedTitle: 'Demo', icon: 'flutter_dash_black'), |
112 | - localizedTitle: 'Demo', | ||
113 | - icon: 'flutter_dash_black' | ||
114 | - ), | ||
115 | ]); | 117 | ]); |
116 | } | 118 | } |
117 | } | 119 | } |
... | @@ -124,7 +126,8 @@ class MyApp extends StatelessWidget { | ... | @@ -124,7 +126,8 @@ class MyApp extends StatelessWidget { |
124 | ChangeNotifierProvider(create: (_) => LocaleProvider()) | 126 | ChangeNotifierProvider(create: (_) => LocaleProvider()) |
125 | ], | 127 | ], |
126 | child: Consumer2<ThemeProvider, LocaleProvider>( | 128 | child: Consumer2<ThemeProvider, LocaleProvider>( |
127 | - builder: (_, ThemeProvider provider, LocaleProvider localeProvider, __) { | 129 | + builder: |
130 | + (_, ThemeProvider provider, LocaleProvider localeProvider, __) { | ||
128 | return _buildMaterialApp(provider, localeProvider); | 131 | return _buildMaterialApp(provider, localeProvider); |
129 | }, | 132 | }, |
130 | ), | 133 | ), |
... | @@ -133,14 +136,15 @@ class MyApp extends StatelessWidget { | ... | @@ -133,14 +136,15 @@ class MyApp extends StatelessWidget { |
133 | /// Toast 配置 | 136 | /// Toast 配置 |
134 | return OKToast( | 137 | return OKToast( |
135 | backgroundColor: Colors.black54, | 138 | backgroundColor: Colors.black54, |
136 | - textPadding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0), | 139 | + textPadding: |
140 | + const EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0), | ||
137 | radius: 20.0, | 141 | radius: 20.0, |
138 | position: ToastPosition.bottom, | 142 | position: ToastPosition.bottom, |
139 | - child: app | 143 | + child: app); |
140 | - ); | ||
141 | } | 144 | } |
142 | 145 | ||
143 | - Widget _buildMaterialApp(ThemeProvider provider, LocaleProvider localeProvider) { | 146 | + Widget _buildMaterialApp( |
147 | + ThemeProvider provider, LocaleProvider localeProvider) { | ||
144 | return MaterialApp( | 148 | return MaterialApp( |
145 | title: 'Flutter Deer', | 149 | title: 'Flutter Deer', |
146 | // showPerformanceOverlay: true, //显示性能标签 | 150 | // showPerformanceOverlay: true, //显示性能标签 | ... | ... |
1 | import 'package:flutter/material.dart'; | 1 | import 'package:flutter/material.dart'; |
2 | +import 'package:one_poem/tiktok/style/style.dart'; | ||
2 | import 'package:one_poem/widgets/my_app_bar.dart'; | 3 | import 'package:one_poem/widgets/my_app_bar.dart'; |
3 | 4 | ||
4 | class PoemDetailPage extends StatefulWidget { | 5 | class PoemDetailPage extends StatefulWidget { |
5 | 6 | ||
6 | const PoemDetailPage({ | 7 | const PoemDetailPage({ |
7 | Key? key, | 8 | Key? key, |
8 | - this.isAccessibilityTest = false, | 9 | + this.onPop, |
10 | + required this.poemId, | ||
9 | }) : super(key : key); | 11 | }) : super(key : key); |
10 | 12 | ||
11 | - final bool isAccessibilityTest; | 13 | + final int poemId; |
14 | + final Function? onPop; | ||
12 | 15 | ||
13 | @override | 16 | @override |
14 | _PoemDetailPageState createState() => _PoemDetailPageState(); | 17 | _PoemDetailPageState createState() => _PoemDetailPageState(); |
... | @@ -17,11 +20,27 @@ class PoemDetailPage extends StatefulWidget { | ... | @@ -17,11 +20,27 @@ class PoemDetailPage extends StatefulWidget { |
17 | class _PoemDetailPageState extends State<PoemDetailPage>{ | 20 | class _PoemDetailPageState extends State<PoemDetailPage>{ |
18 | @override | 21 | @override |
19 | Widget build(BuildContext context) { | 22 | Widget build(BuildContext context) { |
20 | - return const Scaffold( | 23 | + return Scaffold( |
21 | - appBar: MyAppBar( | 24 | + appBar: const MyAppBar( |
22 | - title: '一言|译解|临境', | 25 | + title: '一言', |
23 | ), | 26 | ), |
24 | - body: Text("题 破山此后禅院"), | 27 | + body: Container( |
28 | + decoration: const BoxDecoration( | ||
29 | + gradient: LinearGradient( | ||
30 | + begin: Alignment.topCenter, | ||
31 | + colors: <Color>[ | ||
32 | + Colors.black, | ||
33 | + Colors.black, | ||
34 | + ], | ||
35 | + ), | ||
36 | + ), | ||
37 | + child: Stack( | ||
38 | + alignment: Alignment.topCenter, | ||
39 | + children: <Widget>[ | ||
40 | + Text("题 破山寺后禅院"), | ||
41 | + ], | ||
42 | + ), | ||
43 | + ), | ||
25 | ); | 44 | ); |
26 | } | 45 | } |
27 | } | 46 | } |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -13,6 +13,8 @@ import 'package:one_poem/tiktok/widgets/tiktok_video_button_column.dart'; | ... | @@ -13,6 +13,8 @@ import 'package:one_poem/tiktok/widgets/tiktok_video_button_column.dart'; |
13 | import 'package:one_poem/tiktok/widgets/tiktok_video_poem.dart'; | 13 | import 'package:one_poem/tiktok/widgets/tiktok_video_poem.dart'; |
14 | import 'package:video_player/video_player.dart'; | 14 | import 'package:video_player/video_player.dart'; |
15 | 15 | ||
16 | +import 'poem_detail.dart'; | ||
17 | + | ||
16 | class PoemPage extends StatefulWidget { | 18 | class PoemPage extends StatefulWidget { |
17 | const PoemPage({Key? key}) : super(key: key); | 19 | const PoemPage({Key? key}) : super(key: key); |
18 | 20 | ||
... | @@ -100,12 +102,10 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { | ... | @@ -100,12 +102,10 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { |
100 | }, | 102 | }, |
101 | ); | 103 | ); |
102 | 104 | ||
103 | - var userPage = UserPage( | 105 | + var detailPage = PoemDetailPage( |
104 | - isSelfPage: false, | 106 | + onPop: (){ |
105 | - canPop: true, | ||
106 | - onPop: () { | ||
107 | tkController.animateToMiddle(); | 107 | tkController.animateToMiddle(); |
108 | - }, | 108 | + }, poemId: 1, |
109 | ); | 109 | ); |
110 | var searchPage = SearchPage( | 110 | var searchPage = SearchPage( |
111 | onPop: tkController.animateToMiddle, | 111 | onPop: tkController.animateToMiddle, |
... | @@ -116,7 +116,7 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { | ... | @@ -116,7 +116,7 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { |
116 | controller: tkController, | 116 | controller: tkController, |
117 | header: header, | 117 | header: header, |
118 | leftPage: searchPage, | 118 | leftPage: searchPage, |
119 | - rightPage: userPage, | 119 | + rightPage: detailPage, |
120 | enableGesture: true, | 120 | enableGesture: true, |
121 | page: Stack( | 121 | page: Stack( |
122 | children: <Widget>[ | 122 | children: <Widget>[ | ... | ... |
1 | import 'package:fluro/fluro.dart'; | 1 | import 'package:fluro/fluro.dart'; |
2 | import 'package:one_poem/routers/i_router.dart'; | 2 | import 'package:one_poem/routers/i_router.dart'; |
3 | 3 | ||
4 | -import 'page/poem_detail.dart'; | ||
5 | import 'page/poem_page.dart'; | 4 | import 'page/poem_page.dart'; |
6 | 5 | ||
7 | class PoemRouter implements IRouterProvider{ | 6 | class PoemRouter implements IRouterProvider{ |
8 | 7 | ||
9 | static String poemPage = '/poem'; | 8 | static String poemPage = '/poem'; |
10 | - static String poemDetail = '/poem/detail'; | ||
11 | 9 | ||
12 | @override | 10 | @override |
13 | void initRouter(FluroRouter router) { | 11 | void initRouter(FluroRouter router) { |
14 | router.define(poemPage, handler: Handler(handlerFunc: (_, __) => const PoemPage())); | 12 | router.define(poemPage, handler: Handler(handlerFunc: (_, __) => const PoemPage())); |
15 | - router.define(poemDetail, handler: Handler(handlerFunc: (_, __) => const PoemDetailPage())); | ||
16 | } | 13 | } |
17 | 14 | ||
18 | } | 15 | } | ... | ... |
... | @@ -13,7 +13,7 @@ class UserPage extends StatefulWidget { | ... | @@ -13,7 +13,7 @@ class UserPage extends StatefulWidget { |
13 | Key? key, | 13 | Key? key, |
14 | this.canPop = false, | 14 | this.canPop = false, |
15 | this.onPop, | 15 | this.onPop, |
16 | - required this.isSelfPage, | 16 | + this.isSelfPage = false, |
17 | this.onSwitch, | 17 | this.onSwitch, |
18 | }) : super(key: key); | 18 | }) : super(key: key); |
19 | 19 | ... | ... |
-
Please register or login to post a comment