Reason Pun

增加了新手引导页面

...@@ -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(
......