Showing
5 changed files
with
79 additions
and
28 deletions
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'; |
... | @@ -27,39 +29,79 @@ class _PoemDetailPageState extends State<PoemDetailPage> { | ... | @@ -27,39 +29,79 @@ class _PoemDetailPageState extends State<PoemDetailPage> { |
27 | Widget build(BuildContext context) { | 29 | Widget build(BuildContext context) { |
28 | return Scaffold( | 30 | return Scaffold( |
29 | appBar: MyAppBar( | 31 | appBar: MyAppBar( |
32 | + isTransparent: false, | ||
30 | homeTitleHeader: HomeTitleHeader( | 33 | homeTitleHeader: HomeTitleHeader( |
31 | - funcLeft: (){ | 34 | + funcLeft: () { |
32 | print("lefltlelfle"); | 35 | print("lefltlelfle"); |
33 | }, | 36 | }, |
34 | ), | 37 | ), |
35 | homeActionWidgets: HomeActionWidgets( | 38 | homeActionWidgets: HomeActionWidgets( |
36 | - funcStar: (){ | 39 | + funcStar: () { |
37 | print("starrrrrrr"); | 40 | print("starrrrrrr"); |
38 | }, | 41 | }, |
39 | ), | 42 | ), |
40 | ), | 43 | ), |
41 | body: Container( | 44 | body: Container( |
42 | decoration: const BoxDecoration( | 45 | decoration: const BoxDecoration( |
43 | - color: Colors.black, | ||
44 | image: DecorationImage( | 46 | image: DecorationImage( |
45 | image: AssetImage("assets/images/poem/poem_background.png"), | 47 | image: AssetImage("assets/images/poem/poem_background.png"), |
46 | fit: BoxFit.fill, | 48 | fit: BoxFit.fill, |
47 | ), | 49 | ), |
48 | ), | 50 | ), |
49 | - child: Column( | 51 | + child: SafeArea( |
50 | - crossAxisAlignment: CrossAxisAlignment.start, | 52 | + child: Container( |
51 | - children: const [ | 53 | + margin: const EdgeInsets.symmetric(vertical: 40.0, horizontal: 25.0), |
52 | - Text("题破山寺后禅院"), | 54 | + height: 240.0, |
53 | - Gaps.vGap24, | 55 | + width: double.infinity, |
54 | - Text("常建"), | 56 | + decoration: BoxDecoration( |
55 | - Text("清晨入古寺,初日照高林。"), | 57 | + color: Colors.grey.shade200.withOpacity(0.1), |
56 | - Text("竹径通幽处,禅房花木深。"), | 58 | + border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度 |
57 | - Text("山光悦鸟性,潭影空人心。"), | 59 | + borderRadius: BorderRadius.circular(2.0), |
58 | - Text("万籁此都寂,但余钟磬音。"), | 60 | + ), |
59 | - Gaps.vGap24, | 61 | + child: ClipRect( |
60 | - Text("100位用户朗读拍摄提交了“临境”"), | 62 | + child: BackdropFilter( |
61 | - ], | 63 | + filter: ImageFilter.blur( |
62 | - ), | 64 | + sigmaX: 10.0, |
65 | + sigmaY: 10.0, | ||
66 | + ), | ||
67 | + child: Container( | ||
68 | + decoration: BoxDecoration( | ||
69 | + color: Colors.grey.shade200.withOpacity(0.1), | ||
70 | + ), | ||
71 | + child: Padding( | ||
72 | + padding: const EdgeInsets.all(10.0), | ||
73 | + child: Column( | ||
74 | + children: const [ | ||
75 | + Text( | ||
76 | + "题破山寺后禅院", | ||
77 | + style: TextStyle( | ||
78 | + fontSize: 24.0, | ||
79 | + color: Colors.white, | ||
80 | + ), | ||
81 | + ), | ||
82 | + Gaps.vGap16, | ||
83 | + Text( | ||
84 | + "常建", | ||
85 | + style: TextStyle( | ||
86 | + fontSize: 18.0, | ||
87 | + color: Colors.white, | ||
88 | + ), | ||
89 | + ), | ||
90 | + Gaps.vGap12, | ||
91 | + Text( | ||
92 | + "清晨入古寺,初日照高林。\n竹径通幽处,禅房花木深。\n山光悦鸟性,潭影空人心。\n万籁此都寂,但余钟磬音。", | ||
93 | + style: TextStyle( | ||
94 | + color: Colors.white, | ||
95 | + fontFamily: "ZCOOLXiaoWei", | ||
96 | + fontSize: 24.0), | ||
97 | + ), | ||
98 | + ], | ||
99 | + ), | ||
100 | + ), | ||
101 | + ), | ||
102 | + ), | ||
103 | + ), | ||
104 | + )), | ||
63 | alignment: Alignment.topLeft, | 105 | alignment: Alignment.topLeft, |
64 | ), | 106 | ), |
65 | ); | 107 | ); | ... | ... |
... | @@ -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 | ||
... | @@ -105,8 +106,14 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { | ... | @@ -105,8 +106,14 @@ class _PoemPageState extends State<PoemPage> with WidgetsBindingObserver { |
105 | // 组合 | 106 | // 组合 |
106 | return TikTokScaffold( | 107 | return TikTokScaffold( |
107 | controller: tkController, | 108 | controller: tkController, |
108 | - header: const 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, | ... | ... |
... | @@ -15,14 +15,15 @@ class TikTokTopInfoColumn extends StatelessWidget { | ... | @@ -15,14 +15,15 @@ class TikTokTopInfoColumn extends StatelessWidget { |
15 | 15 | ||
16 | @override | 16 | @override |
17 | Widget build(BuildContext context) { | 17 | Widget build(BuildContext context) { |
18 | - return Container( | 18 | + return SafeArea( |
19 | - margin: const EdgeInsets.symmetric(vertical: 30.0, horizontal: 25.0), | 19 | + child: Container( |
20 | + margin: const EdgeInsets.symmetric(vertical: 40.0, horizontal: 25.0), | ||
20 | height: 100.0, | 21 | height: 100.0, |
21 | width: double.infinity, | 22 | width: double.infinity, |
22 | decoration: BoxDecoration( | 23 | decoration: BoxDecoration( |
23 | - color: Colors.black.withOpacity(.2), | 24 | + color: Colors.grey.shade200.withOpacity(0.1), |
24 | border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度 | 25 | border: Border.all(color: Colors.grey, width: 0.1), // 边色与边宽度 |
25 | - borderRadius: BorderRadius.circular(5.0), | 26 | + borderRadius: BorderRadius.circular(2.0), |
26 | ), | 27 | ), |
27 | child: ClipRect( | 28 | child: ClipRect( |
28 | child: BackdropFilter( | 29 | child: BackdropFilter( |
... | @@ -31,12 +32,11 @@ class TikTokTopInfoColumn extends StatelessWidget { | ... | @@ -31,12 +32,11 @@ class TikTokTopInfoColumn extends StatelessWidget { |
31 | sigmaY: 10.0, | 32 | sigmaY: 10.0, |
32 | ), | 33 | ), |
33 | child: Container( | 34 | child: Container( |
34 | - padding: const EdgeInsets.all(10.0), | ||
35 | decoration: BoxDecoration( | 35 | decoration: BoxDecoration( |
36 | color: Colors.grey.shade200.withOpacity(0.1), | 36 | color: Colors.grey.shade200.withOpacity(0.1), |
37 | ), | 37 | ), |
38 | child: Padding( | 38 | child: Padding( |
39 | - padding: const EdgeInsets.all(0.0), | 39 | + padding: const EdgeInsets.all(10.0), |
40 | child: Column( | 40 | child: Column( |
41 | children: const [ | 41 | children: const [ |
42 | Text( | 42 | Text( |
... | @@ -49,9 +49,9 @@ class TikTokTopInfoColumn extends StatelessWidget { | ... | @@ -49,9 +49,9 @@ class TikTokTopInfoColumn extends StatelessWidget { |
49 | ], | 49 | ], |
50 | ), | 50 | ), |
51 | ), | 51 | ), |
52 | - ) , | 52 | + ), |
53 | ), | 53 | ), |
54 | ), | 54 | ), |
55 | - ); | 55 | + )); |
56 | } | 56 | } |
57 | } | 57 | } | ... | ... |
... | @@ -23,7 +23,7 @@ class TikTokVidePoem extends StatelessWidget { | ... | @@ -23,7 +23,7 @@ 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 | ), | ... | ... |
... | @@ -12,11 +12,13 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { | ... | @@ -12,11 +12,13 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { |
12 | this.isBack = true, | 12 | this.isBack = true, |
13 | this.homeTitleHeader, | 13 | this.homeTitleHeader, |
14 | this.homeActionWidgets, | 14 | this.homeActionWidgets, |
15 | + this.isTransparent = false, | ||
15 | }) : super(key: key); | 16 | }) : super(key: key); |
16 | 17 | ||
17 | final Color? backgroundColor; | 18 | final Color? backgroundColor; |
18 | final VoidCallback? onPressed; | 19 | final VoidCallback? onPressed; |
19 | final bool isBack; | 20 | final bool isBack; |
21 | + final bool isTransparent; | ||
20 | 22 | ||
21 | final Widget? homeTitleHeader; | 23 | final Widget? homeTitleHeader; |
22 | final Widget? homeActionWidgets; | 24 | final Widget? homeActionWidgets; |
... | @@ -49,7 +51,7 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { | ... | @@ -49,7 +51,7 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget { |
49 | return AnnotatedRegion<SystemUiOverlayStyle>( | 51 | return AnnotatedRegion<SystemUiOverlayStyle>( |
50 | value: _overlayStyle, | 52 | value: _overlayStyle, |
51 | child: Material( | 53 | child: Material( |
52 | - color: Colors.transparent, | 54 | + color: isTransparent ? Colors.transparent : Colors.black, |
53 | child: SafeArea( | 55 | child: SafeArea( |
54 | child: Stack( | 56 | child: Stack( |
55 | alignment: Alignment.center, | 57 | alignment: Alignment.center, | ... | ... |
-
Please register or login to post a comment