Showing
4 changed files
with
54 additions
and
5 deletions
assets/images/poem/ydss.png
0 → 100644

22.5 KB
... | @@ -141,6 +141,18 @@ class _LoginPageState extends State<LoginPage> | ... | @@ -141,6 +141,18 @@ class _LoginPageState extends State<LoginPage> |
141 | onPressed: () { | 141 | onPressed: () { |
142 | NavigatorUtils.push(context, LoginRouter.smsLoginPage); | 142 | NavigatorUtils.push(context, LoginRouter.smsLoginPage); |
143 | }, | 143 | }, |
144 | + homeActionWidgets: TextButton( | ||
145 | + onPressed: () { | ||
146 | + NavigatorUtils.push(context, LoginRouter.smsLoginPage); | ||
147 | + }, | ||
148 | + child: Text( | ||
149 | + "验证码登录", | ||
150 | + style: TextStyle( | ||
151 | + color: Colors.black45, | ||
152 | + fontSize: 15.px, | ||
153 | + ), | ||
154 | + ), | ||
155 | + ), | ||
144 | ), | 156 | ), |
145 | body: Stack( | 157 | body: Stack( |
146 | children: [ | 158 | children: [ | ... | ... |
1 | -import 'dart:ui'; | ||
2 | - | ||
3 | import 'package:flutter/gestures.dart'; | 1 | import 'package:flutter/gestures.dart'; |
4 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
5 | import 'package:one_poem/login/widgets/my_text_field.dart'; | 3 | import 'package:one_poem/login/widgets/my_text_field.dart'; |
... | @@ -66,7 +64,7 @@ class _SMSLoginPageState extends State<SMSLoginPage> | ... | @@ -66,7 +64,7 @@ class _SMSLoginPageState extends State<SMSLoginPage> |
66 | @override | 64 | @override |
67 | Widget build(BuildContext context) { | 65 | Widget build(BuildContext context) { |
68 | return Scaffold( | 66 | return Scaffold( |
69 | - appBar: MyAppBar(), | 67 | + appBar: const MyAppBar(), |
70 | body: MyScrollView( | 68 | body: MyScrollView( |
71 | keyboardConfig: Utils.getKeyboardActionsConfig( | 69 | keyboardConfig: Utils.getKeyboardActionsConfig( |
72 | context, <FocusNode>[_nodeText1, _nodeText2]), | 70 | context, <FocusNode>[_nodeText1, _nodeText2]), | ... | ... |
1 | import 'dart:ui'; | 1 | import 'dart:ui'; |
2 | 2 | ||
3 | -import 'package:flutter/cupertino.dart'; | ||
4 | import 'package:flutter/material.dart'; | 3 | import 'package:flutter/material.dart'; |
5 | import 'package:one_poem/poem/widgets/poem_content.dart'; | 4 | import 'package:one_poem/poem/widgets/poem_content.dart'; |
6 | import 'package:one_poem/poem/widgets/poem_user_audio.dart'; | 5 | import 'package:one_poem/poem/widgets/poem_user_audio.dart'; |
7 | import 'package:one_poem/poem/widgets/poem_user_comments.dart'; | 6 | import 'package:one_poem/poem/widgets/poem_user_comments.dart'; |
8 | import 'package:one_poem/res/gaps.dart'; | 7 | import 'package:one_poem/res/gaps.dart'; |
9 | import 'package:one_poem/routers/fluro_navigator.dart'; | 8 | import 'package:one_poem/routers/fluro_navigator.dart'; |
10 | -import 'package:one_poem/util/toast_utils.dart'; | 9 | +import 'package:one_poem/util/image_utils.dart'; |
11 | import 'package:one_poem/widgets/bars/home_action_bar.dart'; | 10 | import 'package:one_poem/widgets/bars/home_action_bar.dart'; |
12 | import 'package:one_poem/widgets/bars/home_menu_bar.dart'; | 11 | import 'package:one_poem/widgets/bars/home_menu_bar.dart'; |
13 | import 'package:one_poem/widgets/my_app_bar.dart'; | 12 | import 'package:one_poem/widgets/my_app_bar.dart'; |
14 | 13 | ||
15 | import 'package:one_poem/extension/int_extension.dart'; | 14 | import 'package:one_poem/extension/int_extension.dart'; |
15 | +import 'package:one_poem/widgets/popup_window.dart'; | ||
16 | 16 | ||
17 | import '../poem_router.dart'; | 17 | import '../poem_router.dart'; |
18 | 18 | ||
... | @@ -39,11 +39,50 @@ class PoemDetailPage extends StatefulWidget { | ... | @@ -39,11 +39,50 @@ class PoemDetailPage extends StatefulWidget { |
39 | 39 | ||
40 | class _PoemDetailPageState extends State<PoemDetailPage> { | 40 | class _PoemDetailPageState extends State<PoemDetailPage> { |
41 | PoemContentSwitch contentSwitch = PoemContentSwitch.audio; | 41 | PoemContentSwitch contentSwitch = PoemContentSwitch.audio; |
42 | + final GlobalKey _hintKey = GlobalKey(); | ||
43 | + | ||
44 | + void _showHint() { | ||
45 | + final RenderBox hint = | ||
46 | + _hintKey.currentContext!.findRenderObject()! as RenderBox; | ||
47 | + showPopupWindow<void>( | ||
48 | + context: context, | ||
49 | + isShowBg: true, | ||
50 | + offset: const Offset(50.0, 150.0), | ||
51 | + anchor: hint, | ||
52 | + child: Semantics( | ||
53 | + label: '弹出引导页', | ||
54 | + hint: '向左滑动可删除列表,点击可关闭', | ||
55 | + button: true, | ||
56 | + child: Container( | ||
57 | + key: const Key('hint'), | ||
58 | + width: 200.0, | ||
59 | + height: 147.0, | ||
60 | + decoration: BoxDecoration( | ||
61 | + image: DecorationImage( | ||
62 | + image: ImageUtils.getAssetImage('poem/ydss'), | ||
63 | + fit: BoxFit.fitWidth, | ||
64 | + ), | ||
65 | + ), | ||
66 | + ), | ||
67 | + ), | ||
68 | + ); | ||
69 | + } | ||
70 | + | ||
71 | + @override | ||
72 | + void initState() { | ||
73 | + super.initState(); | ||
74 | + // 获取Build完成状态监听 | ||
75 | + WidgetsBinding.instance!.addPostFrameCallback((_) { | ||
76 | + _showHint(); | ||
77 | + }); | ||
78 | + } | ||
79 | + | ||
42 | @override | 80 | @override |
43 | Widget build(BuildContext context) { | 81 | Widget build(BuildContext context) { |
44 | const poemStr = "清晨入古寺,初日照高林。\n竹径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。"; | 82 | const poemStr = "清晨入古寺,初日照高林。\n竹径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。"; |
45 | return Scaffold( | 83 | return Scaffold( |
46 | appBar: MyAppBar( | 84 | appBar: MyAppBar( |
85 | + key: _hintKey, | ||
47 | isBack: true, | 86 | isBack: true, |
48 | isTransparent: false, | 87 | isTransparent: false, |
49 | homeMenuHeader: HomeMenuHeader( | 88 | homeMenuHeader: HomeMenuHeader( | ... | ... |
-
Please register or login to post a comment