Skip to content

Commit

Permalink
我的-访客,好友,粉丝
Browse files Browse the repository at this point in the history
  • Loading branch information
meetqy committed Jun 3, 2022
1 parent 480bcbe commit 9efd312
Show file tree
Hide file tree
Showing 5 changed files with 321 additions and 3 deletions.
105 changes: 105 additions & 0 deletions lib/pages/home/mine/fans/index.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import 'package:flutter/material.dart';
import 'package:flutter_dating_template/pages/home/community/page_view/like/mock.dart';
import 'package:flutter_wcao/ui/theme.dart';
import 'package:dart_mock/dart_mock.dart' as mock;

class MineFans extends StatefulWidget {
const MineFans({Key? key}) : super(key: key);

@override
State<MineFans> createState() => _MineFansState();
}

class _MineFansState extends State<MineFans> {
List<MockLike> lists = [];

@override
void initState() {
super.initState();

setState(() {
lists = MockLike.get();
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('粉丝'),
),
body: SafeArea(
child: ListView(
children: lists.map((e) => listCard(e)).toList(),
),
),
);
}
}

Container listCard(MockLike item) {
bool fav = mock.boolean();

return Container(
padding: const EdgeInsets.symmetric(horizontal: 12),
margin: const EdgeInsets.only(top: 24),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
radius: 28,
backgroundImage: NetworkImage(item.avatar),
),
Expanded(
child: Container(
padding: const EdgeInsets.only(left: 12),
height: 56,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
item.nickName,
style: TextStyle(
fontSize: WcaoTheme.fsXl,
fontWeight: FontWeight.bold,
),
),
Container(
margin: const EdgeInsets.only(top: 4),
child: Text(
'${mock.integer(min: 1, max: 99)}天 | ${mock.integer(min: 1, max: 99)}动态',
style: TextStyle(
color: WcaoTheme.secondary,
fontSize: WcaoTheme.fsBase,
),
),
),
],
),
InkWell(
child: Container(
decoration: BoxDecoration(
color: fav ? WcaoTheme.placeholder : WcaoTheme.primary,
borderRadius: BorderRadius.circular(20),
),
padding:
const EdgeInsets.symmetric(horizontal: 12, vertical: 4),
child: Text(
fav ? '已关注' : '关注',
style: TextStyle(
fontSize: WcaoTheme.fsSm, color: Colors.white),
),
),
)
],
),
),
),
],
),
);
}
103 changes: 103 additions & 0 deletions lib/pages/home/mine/firends/index.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
import 'package:flutter/material.dart';
import 'package:flutter_dating_template/pages/home/community/page_view/like/mock.dart';
import 'package:flutter_wcao/ui/theme.dart';
import 'package:dart_mock/dart_mock.dart' as mock;

class MineFirends extends StatefulWidget {
const MineFirends({Key? key}) : super(key: key);

@override
State<MineFirends> createState() => _MineFirendsState();
}

class _MineFirendsState extends State<MineFirends> {
List<MockLike> lists = [];

@override
void initState() {
super.initState();

setState(() {
lists = MockLike.get();
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('好友'),
),
body: SafeArea(
child: ListView(
children: lists.map((e) => listCard(e)).toList(),
),
),
);
}
}

Container listCard(MockLike item) {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 12),
margin: const EdgeInsets.only(top: 24),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
radius: 28,
backgroundImage: NetworkImage(item.avatar),
),
Expanded(
child: Container(
padding: const EdgeInsets.only(left: 12),
height: 56,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
item.nickName,
style: TextStyle(
fontSize: WcaoTheme.fsXl,
fontWeight: FontWeight.bold,
),
),
Container(
margin: const EdgeInsets.only(top: 4),
child: Text(
'${mock.integer(min: 1, max: 99)}天 | ${mock.integer(min: 1, max: 99)}动态',
style: TextStyle(
color: WcaoTheme.secondary,
fontSize: WcaoTheme.fsBase,
),
),
),
],
),
InkWell(
child: Container(
decoration: BoxDecoration(
color: WcaoTheme.placeholder,
borderRadius: BorderRadius.circular(20),
),
padding:
const EdgeInsets.symmetric(horizontal: 12, vertical: 4),
child: Text(
'已关注',
style: TextStyle(
fontSize: WcaoTheme.fsSm, color: Colors.white),
),
),
)
],
),
),
),
],
),
);
}
15 changes: 12 additions & 3 deletions lib/pages/home/mine/index.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,20 @@ class _PageViewMineState extends State<PageViewMine> {
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
adapterItem(mine.visits, '访客'),
InkWell(
child: adapterItem(mine.visits, '访客'),
onTap: () => Get.toNamed('/mine/visitors'),
),
adapterDrive(),
adapterItem(mine.friends, '好友'),
InkWell(
child: adapterItem(mine.friends, '好友'),
onTap: () => Get.toNamed('/mine/firends'),
),
adapterDrive(),
adapterItem(mine.fans, '粉丝'),
InkWell(
child: adapterItem(mine.fans, '粉丝'),
onTap: () => Get.toNamed('/mine/fans'),
)
],
),
),
Expand Down
95 changes: 95 additions & 0 deletions lib/pages/home/mine/visitors/index.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
import 'package:flutter/material.dart';
import 'package:flutter_dating_template/pages/home/community/page_view/like/mock.dart';
import 'package:flutter_wcao/ui/theme.dart';
import 'package:dart_mock/dart_mock.dart' as mock;

class MineVisitors extends StatefulWidget {
const MineVisitors({Key? key}) : super(key: key);

@override
State<MineVisitors> createState() => _MineVisitorsState();
}

class _MineVisitorsState extends State<MineVisitors> {
List<MockLike> lists = [];

@override
void initState() {
super.initState();

setState(() {
lists = MockLike.get();
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('访客'),
),
body: SafeArea(
child: ListView(
children: lists.map((e) => listCard(e)).toList(),
),
),
);
}
}

Container listCard(MockLike item) {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 12),
margin: const EdgeInsets.only(top: 24),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
CircleAvatar(
radius: 28,
backgroundImage: NetworkImage(item.avatar),
),
Expanded(
child: Container(
padding: const EdgeInsets.only(left: 12),
height: 56,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
item.nickName,
style: TextStyle(
fontSize: WcaoTheme.fsXl,
fontWeight: FontWeight.bold,
),
),
Container(
margin: const EdgeInsets.only(top: 4),
child: Text(
'${mock.integer(min: 1, max: 99)}天 | ${mock.integer(min: 1, max: 99)}动态',
style: TextStyle(
color: WcaoTheme.secondary,
fontSize: WcaoTheme.fsBase,
),
),
),
],
),
Text(
'${mock.integer(min: 1, max: 59)}分钟前',
style: TextStyle(
color: WcaoTheme.secondary,
fontSize: WcaoTheme.fsBase,
),
)
],
),
),
),
],
),
);
}
6 changes: 6 additions & 0 deletions lib/route.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ import 'package:flutter_dating_template/pages/agreement/user.dart';
import 'package:flutter_dating_template/pages/history_match/index.dart';
import 'package:flutter_dating_template/pages/home/index.dart';
import 'package:flutter_dating_template/pages/home/mine/add_tag/index.dart';
import 'package:flutter_dating_template/pages/home/mine/fans/index.dart';
import 'package:flutter_dating_template/pages/home/mine/firends/index.dart';
import 'package:flutter_dating_template/pages/home/mine/visitors/index.dart';
import 'package:flutter_dating_template/pages/login/password.dart';
import 'package:flutter_dating_template/pages/login/verify_code.dart';
import 'package:flutter_dating_template/pages/settings/about/index.dart';
Expand Down Expand Up @@ -44,4 +47,7 @@ List<GetPage<dynamic>> getRoutes = [
GetPage(name: '/settings/backlist', page: () => const SettingsBacklist()),
GetPage(name: '/settings/about', page: () => const SettingsAbout()),
GetPage(name: "/mine/add-tag", page: () => const MineAddTag()),
GetPage(name: "/mine/visitors", page: () => const MineVisitors()),
GetPage(name: "/mine/firends", page: () => const MineFirends()),
GetPage(name: "/mine/fans", page: () => const MineFans()),
];

0 comments on commit 9efd312

Please sign in to comment.