页面精简
This commit is contained in:
@@ -53,6 +53,12 @@ class TimFriendService extends GetxService {
|
||||
),
|
||||
];
|
||||
|
||||
@override
|
||||
void onInit() async {
|
||||
super.onInit();
|
||||
await fetchList();
|
||||
}
|
||||
|
||||
Future<void> fetchList() async {
|
||||
var result = await friendshipManager.getFriendList();
|
||||
if (result.code == 0) {
|
||||
|
||||
@@ -9,20 +9,9 @@ import 'package:chat/widgets/custom_avatar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class ContactPage extends StatefulWidget {
|
||||
class ContactPage extends StatelessWidget {
|
||||
const ContactPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<ContactPage> createState() => _ContactPageState();
|
||||
}
|
||||
|
||||
class _ContactPageState extends State<ContactPage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
TimFriendService.to.fetchList();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
@@ -8,33 +8,33 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class MomentsPage extends StatelessWidget {
|
||||
class MomentsPage extends GetView<MomentController> {
|
||||
const MomentsPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final ctrl = MomentController.to;
|
||||
return Scaffold(
|
||||
body: Padding(
|
||||
padding: EdgeInsets.only(
|
||||
bottom: MediaQuery.of(context).viewPadding.bottom,
|
||||
),
|
||||
child: EasyRefresh.custom(
|
||||
scrollController: ctrl.scrollController,
|
||||
controller: ctrl.refreshController,
|
||||
scrollController: controller.scrollController,
|
||||
controller: controller.refreshController,
|
||||
header: LinkHeader(
|
||||
ctrl.headerNotifier,
|
||||
controller.headerNotifier,
|
||||
extent: 70.0,
|
||||
triggerDistance: 70.0,
|
||||
completeDuration: const Duration(milliseconds: 500),
|
||||
),
|
||||
footer: CustomEasyRefresh.footer,
|
||||
onRefresh: () => ctrl.refreshList(),
|
||||
onLoad: () => ctrl.loadMoreList(),
|
||||
onRefresh: () => controller.refreshList(),
|
||||
onLoad: () => controller.loadMoreList(),
|
||||
slivers: [
|
||||
MomentHeader(
|
||||
linkNotifier: ctrl.headerNotifier,
|
||||
linkNotifier: controller.headerNotifier,
|
||||
onTitleDoubleTap: () {
|
||||
ctrl.scrollController.animateTo(
|
||||
controller.scrollController.animateTo(
|
||||
0,
|
||||
duration: const Duration(milliseconds: 300),
|
||||
curve: Curves.fastOutSlowIn,
|
||||
@@ -42,7 +42,7 @@ class MomentsPage extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
Obx(() {
|
||||
final momentList = ctrl.momentData.value?.data ?? [];
|
||||
final momentList = controller.momentData.value?.data ?? [];
|
||||
if (momentList.isEmpty) {
|
||||
return SliverFillRemaining(
|
||||
child: CustomEasyRefresh.empty(text: '暂无动态内容'),
|
||||
|
||||
@@ -5,68 +5,61 @@ import 'package:chat/views/user/index/widgets/user_top_bar.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
|
||||
class UserPage extends StatefulWidget {
|
||||
class UserPage extends StatelessWidget {
|
||||
const UserPage({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_UserPageState createState() => _UserPageState();
|
||||
}
|
||||
|
||||
class _UserPageState extends State<UserPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SafeArea(
|
||||
child: Scaffold(
|
||||
body: Column(
|
||||
children: [
|
||||
const UserTopBar(),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
ActionItem(
|
||||
'服务',
|
||||
onTap: () {
|
||||
Get.toNamed(UserRoutes.serve);
|
||||
},
|
||||
),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
ActionItem(
|
||||
'分享邀请',
|
||||
onTap: () {
|
||||
Get.toNamed(UserRoutes.share);
|
||||
},
|
||||
),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
indent: 16,
|
||||
),
|
||||
ActionItem(
|
||||
'设置',
|
||||
onTap: () {
|
||||
Get.toNamed(UserRoutes.setting);
|
||||
},
|
||||
),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
],
|
||||
),
|
||||
return Scaffold(
|
||||
body: Column(
|
||||
children: [
|
||||
const UserTopBar(),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
ActionItem(
|
||||
'服务',
|
||||
onTap: () {
|
||||
Get.toNamed(UserRoutes.serve);
|
||||
},
|
||||
),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
ActionItem(
|
||||
'分享邀请',
|
||||
onTap: () {
|
||||
Get.toNamed(UserRoutes.share);
|
||||
},
|
||||
),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
indent: 16,
|
||||
),
|
||||
ActionItem(
|
||||
'设置',
|
||||
onTap: () {
|
||||
Get.toNamed(UserRoutes.setting);
|
||||
},
|
||||
),
|
||||
const Divider(
|
||||
height: 0,
|
||||
color: AppColors.border,
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,17 +11,20 @@ import 'package:get/get.dart';
|
||||
class UserTopBar extends StatelessWidget {
|
||||
const UserTopBar({Key? key}) : super(key: key);
|
||||
|
||||
final double paddingTop = 96;
|
||||
final double avatarHeight = 64;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
color: AppColors.white,
|
||||
padding: const EdgeInsets.only(
|
||||
padding: EdgeInsets.only(
|
||||
left: 24,
|
||||
top: 48,
|
||||
top: paddingTop,
|
||||
right: 24,
|
||||
bottom: 24,
|
||||
),
|
||||
height: 64 + 48 + 24,
|
||||
// height: avatarHeight + paddingTop + 24,
|
||||
child: GetX<AuthService>(builder: (_) {
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
@@ -32,7 +35,7 @@ class UserTopBar extends StatelessWidget {
|
||||
},
|
||||
child: CustomAvatar(
|
||||
_.userInfo.value.avatar,
|
||||
size: 64,
|
||||
size: avatarHeight,
|
||||
),
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
|
||||
Reference in New Issue
Block a user