7 changed files with 250 additions and 7 deletions
Split View
Diff Options
-
BINassets/images/chat_coupon_icon.png
-
BINassets/images/empty_icon.png
-
17lib/controller/mine/my_friend_controller.dart
-
2lib/generated/assets.dart
-
3lib/pages/mine/mine_page.dart
-
224lib/pages/mine/my_friend_page.dart
-
11lib/pages/mine/rose_history_page.dart
@ -0,0 +1,17 @@ |
|||
import 'package:flutter/material.dart'; |
|||
import 'package:get/get.dart'; |
|||
|
|||
class MyFriendController extends GetxController with GetSingleTickerProviderStateMixin { |
|||
|
|||
late TabController tabController; |
|||
|
|||
final sum = 0.obs; |
|||
|
|||
@override |
|||
void onInit() { |
|||
super.onInit(); |
|||
|
|||
tabController = TabController(length: 4, vsync: this); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,224 @@ |
|||
import 'package:dating_touchme_app/components/page_appbar.dart'; |
|||
import 'package:dating_touchme_app/controller/mine/my_friend_controller.dart'; |
|||
import 'package:dating_touchme_app/generated/assets.dart'; |
|||
import 'package:flutter/material.dart'; |
|||
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|||
import 'package:get/get.dart'; |
|||
import 'package:tdesign_flutter/tdesign_flutter.dart'; |
|||
|
|||
class MyFriendPage extends StatelessWidget { |
|||
const MyFriendPage({super.key}); |
|||
|
|||
@override |
|||
Widget build(BuildContext context) { |
|||
return GetX<MyFriendController>( |
|||
init: MyFriendController(), |
|||
builder: (controller){ |
|||
return Scaffold( |
|||
appBar: PageAppbar(title: "我的关注${controller.sum.value}"), |
|||
body: SingleChildScrollView( |
|||
child: Container( |
|||
padding: EdgeInsets.all(22.w), |
|||
child: Column( |
|||
children: [ |
|||
TDTabBar( |
|||
tabs: [ |
|||
TDTab( |
|||
child: Padding( |
|||
padding: EdgeInsets.only(right: 16, left: 16), |
|||
child: Text('全部'), |
|||
), |
|||
), |
|||
TDTab( |
|||
child: Padding( |
|||
padding: EdgeInsets.only(right: 16, left: 16), |
|||
child: Text('同城'), |
|||
), |
|||
), |
|||
TDTab( |
|||
child: Padding( |
|||
padding: EdgeInsets.only(right: 12, left: 12), |
|||
child: Text('相亲视频'), |
|||
), |
|||
), |
|||
TDTab( |
|||
child: Padding( |
|||
padding: EdgeInsets.only(right: 12, left: 12), |
|||
child: Text('相亲语音'), |
|||
), |
|||
), |
|||
], |
|||
backgroundColor: Colors.transparent, |
|||
labelPadding: const EdgeInsets.only(right: 4, top: 10, bottom: 10, left: 4), |
|||
selectedBgColor: const Color.fromRGBO(108, 105, 244, 1), |
|||
unSelectedBgColor: Colors.transparent, |
|||
labelColor: Colors.white, |
|||
dividerHeight: 0, |
|||
tabAlignment: TabAlignment.start, |
|||
outlineType: TDTabBarOutlineType.capsule, |
|||
controller: controller.tabController, |
|||
showIndicator: false, |
|||
isScrollable: true, |
|||
onTap: (index) { |
|||
print('相亲页面 Tab: $index'); |
|||
}, |
|||
), |
|||
if(false) ...[ |
|||
Container( |
|||
padding: EdgeInsets.only(top: 60.w,bottom: 13.w), |
|||
child: Center( |
|||
child: Image.asset( |
|||
Assets.imagesEmptyIcon, |
|||
width: 91.w, |
|||
height: 91.w, |
|||
), |
|||
), |
|||
), |
|||
Text( |
|||
"你还没有关注任何人噢", |
|||
style: TextStyle( |
|||
fontSize: 12.w, |
|||
fontWeight: FontWeight.w500, |
|||
color: const Color.fromRGBO(144, 144, 144, 1) |
|||
), |
|||
), |
|||
Container( |
|||
width: 151.w, |
|||
height: 32.w, |
|||
margin: EdgeInsets.only(top: 11.w), |
|||
decoration: BoxDecoration( |
|||
borderRadius: BorderRadius.all(Radius.circular(32.w)), |
|||
gradient: LinearGradient( |
|||
begin: Alignment.centerLeft, |
|||
end: Alignment.centerRight, |
|||
stops: [0.0, 0.7753, 1.0], |
|||
colors: [ |
|||
Color.fromRGBO(131, 89, 255, 1), |
|||
Color.fromRGBO(77, 127, 231, 1), |
|||
Color.fromRGBO(61, 138, 224, 1), |
|||
], |
|||
), |
|||
), |
|||
child: Center( |
|||
child: Text( |
|||
"去聊聊", |
|||
style: TextStyle( |
|||
fontSize: 12.w, |
|||
color: Colors.white, |
|||
fontWeight: FontWeight.w500 |
|||
), |
|||
), |
|||
), |
|||
), |
|||
], |
|||
...[ |
|||
UserItem(), |
|||
UserItem(), |
|||
UserItem(), |
|||
UserItem(), |
|||
UserItem(), |
|||
UserItem(), |
|||
UserItem(), |
|||
] |
|||
], |
|||
), |
|||
), |
|||
), |
|||
); |
|||
}, |
|||
); |
|||
} |
|||
} |
|||
|
|||
class UserItem extends StatefulWidget { |
|||
const UserItem({super.key}); |
|||
|
|||
@override |
|||
State<UserItem> createState() => _UserItemState(); |
|||
} |
|||
|
|||
class _UserItemState extends State<UserItem> { |
|||
@override |
|||
Widget build(BuildContext context) { |
|||
return Container( |
|||
margin: EdgeInsets.symmetric( |
|||
vertical: 15.w |
|||
), |
|||
child: Row( |
|||
mainAxisAlignment: MainAxisAlignment.spaceBetween, |
|||
children: [ |
|||
Row( |
|||
children: [ |
|||
ClipRRect( |
|||
borderRadius: BorderRadius.all(Radius.circular(45.w)), |
|||
child: Image.asset( |
|||
Assets.imagesUserAvatar, |
|||
width: 45.w, |
|||
height: 45.w, |
|||
), |
|||
), |
|||
SizedBox(width: 9.w,), |
|||
Column( |
|||
crossAxisAlignment: CrossAxisAlignment.start, |
|||
children: [ |
|||
Row( |
|||
children: [ |
|||
Text( |
|||
"叫我大王", |
|||
style: TextStyle( |
|||
fontSize: 14.w, |
|||
fontWeight: FontWeight.w500 |
|||
), |
|||
), |
|||
Container( |
|||
margin: EdgeInsets.only(left: 7.w), |
|||
width: 12.w, |
|||
height: 12.w, |
|||
decoration: BoxDecoration( |
|||
borderRadius: BorderRadius.all(Radius.circular(12.w)), |
|||
color: const Color.fromRGBO(255, 237, 255, 1) |
|||
), |
|||
child: Center( |
|||
child: Image.asset( |
|||
Assets.imagesFemale, |
|||
width: 7.w, |
|||
), |
|||
), |
|||
) |
|||
], |
|||
), |
|||
Text( |
|||
"30岁·广州", |
|||
style: TextStyle( |
|||
fontSize: 11.w, |
|||
color: const Color.fromRGBO(144, 144, 144, 1), |
|||
fontWeight: FontWeight.w500 |
|||
), |
|||
) |
|||
], |
|||
) |
|||
], |
|||
), |
|||
Container( |
|||
width: 60.w, |
|||
height: 22.w, |
|||
decoration: BoxDecoration( |
|||
borderRadius: BorderRadius.all(Radius.circular(22.w)), |
|||
color: const Color.fromRGBO(224, 224, 224, .5) |
|||
), |
|||
child: Center( |
|||
child: Text( |
|||
"已关注", |
|||
style: TextStyle( |
|||
fontSize: 11.w, |
|||
color: const Color.fromRGBO(144, 144, 144, 1), |
|||
fontWeight: FontWeight.w500 |
|||
), |
|||
), |
|||
), |
|||
) |
|||
], |
|||
), |
|||
); |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save