Showing
5 changed files
with
101 additions
and
33 deletions
... | @@ -6,7 +6,6 @@ import 'package:one_poem/res/resources.dart'; | ... | @@ -6,7 +6,6 @@ import 'package:one_poem/res/resources.dart'; |
6 | import 'package:one_poem/timeline/pages/timelines_page.dart'; | 6 | import 'package:one_poem/timeline/pages/timelines_page.dart'; |
7 | import 'package:one_poem/util/theme_utils.dart'; | 7 | import 'package:one_poem/util/theme_utils.dart'; |
8 | import 'package:one_poem/widgets/double_tap_back_exit_app.dart'; | 8 | import 'package:one_poem/widgets/double_tap_back_exit_app.dart'; |
9 | -import 'package:one_poem/widgets/load_image.dart'; | ||
10 | import 'package:provider/provider.dart'; | 9 | import 'package:provider/provider.dart'; |
11 | import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart'; | 10 | import 'package:flutter_gen/gen_l10n/one_poem_localizations.dart'; |
12 | import 'provider/home_provider.dart'; | 11 | import 'provider/home_provider.dart'; | ... | ... |
... | @@ -3,12 +3,18 @@ import 'dart:ui'; | ... | @@ -3,12 +3,18 @@ import 'dart:ui'; |
3 | import 'package:flutter/cupertino.dart'; | 3 | import 'package:flutter/cupertino.dart'; |
4 | import 'package:flutter/material.dart'; | 4 | import 'package:flutter/material.dart'; |
5 | import 'package:one_poem/poem/widgets/poem_content.dart'; | 5 | import 'package:one_poem/poem/widgets/poem_content.dart'; |
6 | +import 'package:one_poem/poem/widgets/poem_user_audio.dart'; | ||
6 | import 'package:one_poem/poem/widgets/poem_user_comments.dart'; | 7 | import 'package:one_poem/poem/widgets/poem_user_comments.dart'; |
7 | import 'package:one_poem/res/gaps.dart'; | 8 | import 'package:one_poem/res/gaps.dart'; |
8 | import 'package:one_poem/widgets/bars/home_action_bar.dart'; | 9 | import 'package:one_poem/widgets/bars/home_action_bar.dart'; |
9 | import 'package:one_poem/widgets/bars/home_menu_bar.dart'; | 10 | import 'package:one_poem/widgets/bars/home_menu_bar.dart'; |
10 | import 'package:one_poem/widgets/my_app_bar.dart'; | 11 | import 'package:one_poem/widgets/my_app_bar.dart'; |
11 | 12 | ||
13 | +enum PoemContentSwitch { | ||
14 | + audio, | ||
15 | + comment, | ||
16 | +} | ||
17 | + | ||
12 | class PoemDetailPage extends StatefulWidget { | 18 | class PoemDetailPage extends StatefulWidget { |
13 | const PoemDetailPage({ | 19 | const PoemDetailPage({ |
14 | Key? key, | 20 | Key? key, |
... | @@ -26,6 +32,7 @@ class PoemDetailPage extends StatefulWidget { | ... | @@ -26,6 +32,7 @@ class PoemDetailPage extends StatefulWidget { |
26 | } | 32 | } |
27 | 33 | ||
28 | class _PoemDetailPageState extends State<PoemDetailPage> { | 34 | class _PoemDetailPageState extends State<PoemDetailPage> { |
35 | + PoemContentSwitch contentSwitch = PoemContentSwitch.audio; | ||
29 | @override | 36 | @override |
30 | Widget build(BuildContext context) { | 37 | Widget build(BuildContext context) { |
31 | const poemStr = "清晨入古寺,初日照高林。\n竹径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。"; | 38 | const poemStr = "清晨入古寺,初日照高林。\n竹径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。"; |
... | @@ -35,7 +42,12 @@ class _PoemDetailPageState extends State<PoemDetailPage> { | ... | @@ -35,7 +42,12 @@ class _PoemDetailPageState extends State<PoemDetailPage> { |
35 | isTransparent: false, | 42 | isTransparent: false, |
36 | homeMenuHeader: HomeMenuHeader( | 43 | homeMenuHeader: HomeMenuHeader( |
37 | funcLeft: () { | 44 | funcLeft: () { |
38 | - print("lefltlelfle poem id=" + widget.poemId.toString()); | 45 | + contentSwitch = PoemContentSwitch.audio; |
46 | + setState(() {}); | ||
47 | + }, | ||
48 | + funcCenter: () { | ||
49 | + contentSwitch = PoemContentSwitch.comment; | ||
50 | + setState(() {}); | ||
39 | }, | 51 | }, |
40 | ), | 52 | ), |
41 | homeActionWidgets: HomeActionWidgets( | 53 | homeActionWidgets: HomeActionWidgets( |
... | @@ -88,9 +100,16 @@ class _PoemDetailPageState extends State<PoemDetailPage> { | ... | @@ -88,9 +100,16 @@ class _PoemDetailPageState extends State<PoemDetailPage> { |
88 | author: "常建", | 100 | author: "常建", |
89 | poemStr: poemStr, | 101 | poemStr: poemStr, |
90 | ), | 102 | ), |
91 | - const Expanded( | 103 | + Expanded( |
92 | flex: 1, | 104 | flex: 1, |
93 | - child: PoemUserComments(), | 105 | + child: contentSwitch == PoemContentSwitch.audio |
106 | + ? const PoemUserAudio() | ||
107 | + : const PoemUserComments( | ||
108 | + author: "老魔取西经", | ||
109 | + comments: | ||
110 | + "那日早上,我到达百望山顶,看着山顶空空的楼阁,想象那也可以是一所禅房吧", | ||
111 | + datetime: "2021年12月23日 辰时三刻", | ||
112 | + ), | ||
94 | ), | 113 | ), |
95 | Container( | 114 | Container( |
96 | width: double.infinity, | 115 | width: double.infinity, | ... | ... |
... | @@ -22,7 +22,7 @@ class PoemContent extends StatelessWidget { | ... | @@ -22,7 +22,7 @@ class PoemContent extends StatelessWidget { |
22 | title, | 22 | title, |
23 | style: const TextStyle( | 23 | style: const TextStyle( |
24 | fontSize: 24.0, | 24 | fontSize: 24.0, |
25 | - color: Colors.white, | 25 | + color: Colors.black54, |
26 | ), | 26 | ), |
27 | ), | 27 | ), |
28 | Gaps.vGap16, | 28 | Gaps.vGap16, |
... | @@ -30,7 +30,7 @@ class PoemContent extends StatelessWidget { | ... | @@ -30,7 +30,7 @@ class PoemContent extends StatelessWidget { |
30 | author, | 30 | author, |
31 | style: const TextStyle( | 31 | style: const TextStyle( |
32 | fontSize: 18.0, | 32 | fontSize: 18.0, |
33 | - color: Colors.white, | 33 | + color: Colors.black54, |
34 | ), | 34 | ), |
35 | ), | 35 | ), |
36 | Gaps.vGap12, | 36 | Gaps.vGap12, |
... | @@ -52,7 +52,7 @@ class PoemContent extends StatelessWidget { | ... | @@ -52,7 +52,7 @@ class PoemContent extends StatelessWidget { |
52 | Text( | 52 | Text( |
53 | poemStr, | 53 | poemStr, |
54 | style: const TextStyle( | 54 | style: const TextStyle( |
55 | - color: Colors.white, | 55 | + color: Colors.black54, |
56 | fontFamily: "ZCOOLXiaoWei", | 56 | fontFamily: "ZCOOLXiaoWei", |
57 | fontSize: 24.0, | 57 | fontSize: 24.0, |
58 | ), | 58 | ), | ... | ... |
lib/poem/widgets/poem_user_audio.dart
0 → 100644
1 | +import 'package:flutter/cupertino.dart'; | ||
2 | +import 'package:flutter/material.dart'; | ||
3 | + | ||
4 | +class PoemUserAudio extends StatelessWidget { | ||
5 | + const PoemUserAudio({ | ||
6 | + Key? key, | ||
7 | + this.audio, //TODO 传入数据 | ||
8 | + this.desc, | ||
9 | + }) : super(key: key); | ||
10 | + | ||
11 | + final List<Map<String, String>>? audio; | ||
12 | + final String? desc; | ||
13 | + @override | ||
14 | + Widget build(BuildContext context) { | ||
15 | + return Container( | ||
16 | + padding: const EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0), | ||
17 | + width: double.infinity, | ||
18 | + child: Column( | ||
19 | + children: <Widget>[ | ||
20 | + ListTile( | ||
21 | + title: Text( | ||
22 | + desc ?? "一大波用户朗读录制提交了“临境”", | ||
23 | + style: const TextStyle(color: Colors.white, fontSize: 15.0), | ||
24 | + ), | ||
25 | + ), | ||
26 | + SizedBox( | ||
27 | + width: double.infinity, | ||
28 | + height: 200.0, | ||
29 | + child: ListView.builder( | ||
30 | + itemBuilder: (BuildContext context, int index) { | ||
31 | + return Wrap( | ||
32 | + spacing: 5.0, | ||
33 | + crossAxisAlignment: WrapCrossAlignment.center, | ||
34 | + children: const [ | ||
35 | + Icon( | ||
36 | + Icons.play_circle_outline, | ||
37 | + size: 16.0, | ||
38 | + color: Colors.white, | ||
39 | + ), | ||
40 | + Text( | ||
41 | + "普通话", | ||
42 | + style: TextStyle(color: Colors.white, fontSize: 16.0), | ||
43 | + ) | ||
44 | + ], | ||
45 | + ); | ||
46 | + }), | ||
47 | + ), | ||
48 | + ], | ||
49 | + ), | ||
50 | + ); | ||
51 | + } | ||
52 | +} |
1 | import 'package:flutter/cupertino.dart'; | 1 | import 'package:flutter/cupertino.dart'; |
2 | import 'package:flutter/material.dart'; | 2 | import 'package:flutter/material.dart'; |
3 | +import 'package:one_poem/res/resources.dart'; | ||
3 | 4 | ||
4 | class PoemUserComments extends StatelessWidget { | 5 | class PoemUserComments extends StatelessWidget { |
5 | const PoemUserComments({ | 6 | const PoemUserComments({ |
6 | Key? key, | 7 | Key? key, |
7 | - this.comments, //TODO 传入数据 | 8 | + required this.comments, |
8 | - this.desc, | 9 | + this.author = "佚名", |
10 | + required this.datetime, //TODO 传入数据 | ||
9 | }) : super(key: key); | 11 | }) : super(key: key); |
10 | 12 | ||
11 | - final List<Map<String, String>>? comments; | 13 | + final String comments; |
12 | - final String? desc; | 14 | + final String author; |
15 | + final String datetime; | ||
13 | @override | 16 | @override |
14 | Widget build(BuildContext context) { | 17 | Widget build(BuildContext context) { |
15 | return Container( | 18 | return Container( |
19 | + alignment: Alignment.topLeft, | ||
16 | padding: const EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0), | 20 | padding: const EdgeInsets.symmetric(vertical: 5.0, horizontal: 10.0), |
17 | width: double.infinity, | 21 | width: double.infinity, |
18 | child: Column( | 22 | child: Column( |
23 | + mainAxisAlignment: MainAxisAlignment.start, | ||
24 | + crossAxisAlignment: CrossAxisAlignment.start, | ||
19 | children: <Widget>[ | 25 | children: <Widget>[ |
20 | - ListTile( | 26 | + const Text( |
21 | - title: Text( | 27 | + "临境有感:", |
22 | - desc ?? "一大波用户朗读录制提交了“临境”", | 28 | + style: TextStyle( |
23 | - style: const TextStyle(color: Colors.white, fontSize: 15.0), | 29 | + color: Colors.black54, |
24 | ), | 30 | ), |
25 | ), | 31 | ), |
26 | - SizedBox( | 32 | + Gaps.vGap5, |
27 | - width: double.infinity, | 33 | + Text(comments, style: const TextStyle(color: Colors.black45),), |
28 | - height: 200.0, | 34 | + Gaps.vGap5, |
29 | - child:ListView.builder( | 35 | + Wrap( |
30 | - itemBuilder: (BuildContext context, int index) { | ||
31 | - return Wrap( | ||
32 | - spacing: 5.0, | ||
33 | crossAxisAlignment: WrapCrossAlignment.center, | 36 | crossAxisAlignment: WrapCrossAlignment.center, |
34 | - children: const [ | 37 | + children: [ |
35 | - Icon( | 38 | + const Icon( |
36 | - Icons.play_circle_outline, | 39 | + Icons.self_improvement, |
37 | - size: 16.0, | 40 | + size: 15.0, |
38 | - color: Colors.white, | ||
39 | ), | 41 | ), |
40 | - Text( | 42 | + Text("言者:$author", style: const TextStyle(color: Colors.black45, fontSize: 12.0),), |
41 | - "普通话", | ||
42 | - style: TextStyle(color: Colors.white, fontSize: 16.0), | ||
43 | - ) | ||
44 | ], | 43 | ], |
45 | - ); | ||
46 | - }), | ||
47 | ), | 44 | ), |
45 | + Text(datetime, style: const TextStyle(color: Colors.black45,fontSize: 12.0),), | ||
48 | ], | 46 | ], |
49 | ), | 47 | ), |
50 | ); | 48 | ); | ... | ... |
-
Please register or login to post a comment