mirror of
https://github.com/Linloir/Simple-TCP-Client.git
synced 2025-12-17 00:38:11 +08:00
50 lines
1.6 KiB
Dart
50 lines
1.6 KiB
Dart
/*
|
|
* @Author : Linloir
|
|
* @Date : 2022-10-11 11:05:18
|
|
* @LastEditTime : 2022-10-17 13:35:35
|
|
* @Description :
|
|
*/
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:pull_to_refresh_flutter3/pull_to_refresh_flutter3.dart';
|
|
import 'package:tcp_client/home/view/message_page/cubit/msg_list_cubit.dart';
|
|
import 'package:tcp_client/home/view/message_page/cubit/msg_list_state.dart';
|
|
import 'package:tcp_client/home/view/message_page/view/message_tile.dart';
|
|
|
|
class MessagePage extends StatelessWidget {
|
|
MessagePage({super.key});
|
|
|
|
final RefreshController _refreshController = RefreshController(initialRefresh: false);
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return BlocBuilder<MessageListCubit, MessageListState>(
|
|
builder: (context, state) {
|
|
return SmartRefresher(
|
|
controller: _refreshController,
|
|
onRefresh: () async {
|
|
await context.read<MessageListCubit>().refresh();
|
|
_refreshController.refreshCompleted();
|
|
},
|
|
child: ListView.separated(
|
|
physics: const BouncingScrollPhysics(parent: AlwaysScrollableScrollPhysics()),
|
|
itemBuilder: (context, index) {
|
|
return MessageTile(
|
|
userID: state.messageList[index].targetUser,
|
|
message: state.messageList[index].message,
|
|
);
|
|
},
|
|
separatorBuilder: (context, index) {
|
|
return const Divider(
|
|
height: 0.5,
|
|
);
|
|
},
|
|
itemCount: state.messageList.length
|
|
),
|
|
);
|
|
}
|
|
);
|
|
}
|
|
}
|