29 changed files with 1642 additions and 136 deletions
Unified View
Diff Options
-
10android/app/src/main/AndroidManifest.xml
-
BINassets/camera_icon.png
-
BINassets/chat_emoji.png
-
BINassets/chat_gift.png
-
BINassets/chat_more.png
-
BINassets/chat_video.png
-
BINassets/chat_voice.png
-
BINassets/img_icon.png
-
BINassets/menu_icon.png
-
BINassets/mic_line.png
-
BINassets/no_chat_bg.png
-
BINassets/notify_icon.png
-
3devtools_options.yaml
-
63lib/components/chat_message.dart
-
64lib/components/my_message.dart
-
4lib/components/page_appbar.dart
-
395lib/pages/chat_page.dart
-
1049lib/pages/message_page.dart
-
50lib/pages/notify_page.dart
-
15lib/router/app_router.dart
-
4lib/router/route_paths.dart
-
66lib/utils/utils.dart
-
4linux/flutter/generated_plugin_registrant.cc
-
1linux/flutter/generated_plugins.cmake
-
4macos/Flutter/GeneratedPluginRegistrant.swift
-
40pubspec.lock
-
2pubspec.yaml
-
3windows/flutter/generated_plugin_registrant.cc
-
1windows/flutter/generated_plugins.cmake
@ -0,0 +1,3 @@ |
|||||
|
description: This file stores settings for Dart & Flutter DevTools. |
||||
|
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states |
||||
|
extensions: |
||||
@ -0,0 +1,63 @@ |
|||||
|
import 'package:flutter/material.dart'; |
||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
||||
|
|
||||
|
class ChatMessage extends StatefulWidget { |
||||
|
final String avatar; |
||||
|
final String message; |
||||
|
const ChatMessage({super.key, required this.avatar, required this.message}); |
||||
|
|
||||
|
@override |
||||
|
State<ChatMessage> createState() => _ChatMessageState(); |
||||
|
} |
||||
|
|
||||
|
class _ChatMessageState extends State<ChatMessage> { |
||||
|
@override |
||||
|
Widget build(BuildContext context) { |
||||
|
return Container( |
||||
|
margin: EdgeInsets.only(bottom: 30.w), |
||||
|
child: Row( |
||||
|
crossAxisAlignment: CrossAxisAlignment.start, |
||||
|
children: [ |
||||
|
Image.asset( |
||||
|
widget.avatar, |
||||
|
width: 62.w, |
||||
|
height: 62.w, |
||||
|
), |
||||
|
SizedBox(width: 15.w,), |
||||
|
Flexible( |
||||
|
fit: FlexFit.loose, |
||||
|
child:Container( |
||||
|
margin: EdgeInsets.only(top: 10.w), |
||||
|
padding: EdgeInsets.only( |
||||
|
top: 31.w, |
||||
|
left: 46.w, |
||||
|
bottom: 31.w, |
||||
|
right: 39.w |
||||
|
), |
||||
|
decoration: BoxDecoration( |
||||
|
borderRadius: BorderRadius.only( |
||||
|
topRight: Radius.circular(18.w), |
||||
|
bottomRight: Radius.circular(18.w), |
||||
|
bottomLeft: Radius.circular(18.w), |
||||
|
), |
||||
|
color: Colors.white |
||||
|
), |
||||
|
child: Text( |
||||
|
widget.message, |
||||
|
style: TextStyle( |
||||
|
fontSize: 31.w, |
||||
|
color: const Color.fromRGBO(51, 51, 51, 1), |
||||
|
), |
||||
|
), |
||||
|
) |
||||
|
), |
||||
|
SizedBox(width: 15.w,), |
||||
|
SizedBox( |
||||
|
width: 62.w, |
||||
|
height: 62.w, |
||||
|
) |
||||
|
], |
||||
|
), |
||||
|
); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,64 @@ |
|||||
|
import 'package:flutter/material.dart'; |
||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
||||
|
|
||||
|
class MyMessage extends StatefulWidget { |
||||
|
final String avatar; |
||||
|
final String message; |
||||
|
const MyMessage({super.key, required this.avatar, required this.message}); |
||||
|
|
||||
|
@override |
||||
|
State<MyMessage> createState() => _MyMessageState(); |
||||
|
} |
||||
|
|
||||
|
class _MyMessageState extends State<MyMessage> { |
||||
|
@override |
||||
|
Widget build(BuildContext context) { |
||||
|
return Container( |
||||
|
margin: EdgeInsets.only(bottom: 30.w), |
||||
|
child: Row( |
||||
|
crossAxisAlignment: CrossAxisAlignment.start, |
||||
|
mainAxisAlignment: MainAxisAlignment.end, |
||||
|
children: [ |
||||
|
SizedBox( |
||||
|
width: 62.w, |
||||
|
height: 62.w, |
||||
|
), |
||||
|
SizedBox(width: 15.w,), |
||||
|
Flexible( |
||||
|
fit: FlexFit.loose, |
||||
|
child:Container( |
||||
|
margin: EdgeInsets.only(top: 10.w), |
||||
|
padding: EdgeInsets.only( |
||||
|
top: 31.w, |
||||
|
left: 46.w, |
||||
|
bottom: 31.w, |
||||
|
right: 39.w |
||||
|
), |
||||
|
decoration: BoxDecoration( |
||||
|
borderRadius: BorderRadius.only( |
||||
|
topLeft: Radius.circular(18.w), |
||||
|
bottomRight: Radius.circular(18.w), |
||||
|
bottomLeft: Radius.circular(18.w), |
||||
|
), |
||||
|
color: const Color.fromRGBO(117, 98, 249, 1) |
||||
|
), |
||||
|
child: Text( |
||||
|
widget.message, |
||||
|
style: TextStyle( |
||||
|
fontSize: 31.w, |
||||
|
color: Colors.white, |
||||
|
), |
||||
|
), |
||||
|
) |
||||
|
), |
||||
|
SizedBox(width: 15.w,), |
||||
|
Image.asset( |
||||
|
widget.avatar, |
||||
|
width: 62.w, |
||||
|
height: 62.w, |
||||
|
), |
||||
|
], |
||||
|
), |
||||
|
); |
||||
|
} |
||||
|
} |
||||
1049
lib/pages/message_page.dart
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,50 @@ |
|||||
|
import 'package:dating_touchme_app/components/chat_message.dart'; |
||||
|
import 'package:dating_touchme_app/components/page_appbar.dart'; |
||||
|
import 'package:flutter/material.dart'; |
||||
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
||||
|
|
||||
|
class NotifyPage extends StatefulWidget { |
||||
|
const NotifyPage({super.key}); |
||||
|
|
||||
|
@override |
||||
|
State<NotifyPage> createState() => _NotifyPageState(); |
||||
|
} |
||||
|
|
||||
|
class _NotifyPageState extends State<NotifyPage> { |
||||
|
@override |
||||
|
Widget build(BuildContext context) { |
||||
|
return Scaffold( |
||||
|
backgroundColor: const Color.fromRGBO(250, 250, 250, 1), |
||||
|
appBar: PageAppbar(title: "系统通知", right: Container( |
||||
|
margin: EdgeInsets.only(right: 28.w), |
||||
|
child: InkWell( |
||||
|
child: Image.asset( |
||||
|
"assets/notify_icon.png", |
||||
|
width: 31.w, |
||||
|
height: 35.w, |
||||
|
), |
||||
|
), |
||||
|
),), |
||||
|
body: SingleChildScrollView( |
||||
|
child: Container( |
||||
|
padding: EdgeInsets.symmetric(horizontal: 29.w), |
||||
|
child: Column( |
||||
|
children: [ |
||||
|
SizedBox(height: 56.w,), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
ChatMessage(avatar: "assets/system_notifi.png", message: "【专属福利】收到2张公开体验卡,助你免费公开连线,快速脱单,有效期1天,价值40玫瑰"), |
||||
|
], |
||||
|
), |
||||
|
), |
||||
|
), |
||||
|
); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save