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