|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
|
|
@ -25,6 +26,8 @@ class ChatDetailScreen extends StatefulWidget {
|
|
|
|
|
|
|
|
|
|
class _ChatDetailScreenState extends State<ChatDetailScreen> {
|
|
|
|
|
dynamic userDetails;
|
|
|
|
|
bool _firstAutoscrollExecuted = false;
|
|
|
|
|
bool _shouldAutoscroll = false;
|
|
|
|
|
|
|
|
|
|
late ChatProviderModel data;
|
|
|
|
|
|
|
|
|
@ -40,6 +43,47 @@ class _ChatDetailScreenState extends State<ChatDetailScreen> {
|
|
|
|
|
await Future.delayed(const Duration(milliseconds: 1000));
|
|
|
|
|
_refreshController.refreshCompleted();
|
|
|
|
|
}
|
|
|
|
|
//
|
|
|
|
|
// void _scrollListener() {
|
|
|
|
|
// _firstAutoscrollExecuted = true;
|
|
|
|
|
// if (scrollController.hasClients && scrollController.position.pixels == scrollController.position.maxScrollExtent) {
|
|
|
|
|
// _shouldAutoscroll = true;
|
|
|
|
|
// } else {
|
|
|
|
|
// _shouldAutoscroll = false;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// void _scrollToBottom() {
|
|
|
|
|
// scrollController.jumpTo(scrollController.position.maxScrollExtent);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// void scrollToMaxExtent() {
|
|
|
|
|
// WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
|
|
// scrollController.animateTo(
|
|
|
|
|
// scrollController.position.maxScrollExtent,
|
|
|
|
|
// duration: const Duration(milliseconds: 100),
|
|
|
|
|
// curve: Curves.easeIn,
|
|
|
|
|
// );
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
// TODO: implement initState
|
|
|
|
|
super.initState();
|
|
|
|
|
//scrollToMaxExtent();
|
|
|
|
|
|
|
|
|
|
// scrollController.addListener(_scrollListener);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void dispose() {
|
|
|
|
|
// TODO: implement dispose
|
|
|
|
|
//scrollController.removeListener(_scrollListener);
|
|
|
|
|
super.dispose();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|