From a8a24587a60e19b34ef81dd2e5ae09a64ee07a35 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期四, 04 十二月 2025 10:13:41 +0800
Subject: [PATCH] 76 聊天系统-客户端 修复删除数据时没有重新刷新滚动条布局

---
 Main/System/Chat/ChatManager.cs |    2 ++
 Main/System/Chat/ChatWin.cs     |   15 +++++++++++++++
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/Main/System/Chat/ChatManager.cs b/Main/System/Chat/ChatManager.cs
index 0691b0c..5d12a44 100644
--- a/Main/System/Chat/ChatManager.cs
+++ b/Main/System/Chat/ChatManager.cs
@@ -338,6 +338,7 @@
 
     public readonly int maxTalkCount = 1000;  //鑱婂ぉ鏁伴噺涓婇檺
     public readonly int deleteTalkCount = 300;  //鑱婂ぉ鏁伴噺涓婇檺鏃跺垹闄ゅ墠澶氬皯鏉�
+    public event Action<ChatChannel> OnDeleteTalkEvent;
 
     void TryDeleteTalkData(ChatChannel type)
     {
@@ -346,6 +347,7 @@
         if (datas.Count < maxTalkCount)
             return;
         datas.RemoveRange(0, deleteTalkCount);
+        OnDeleteTalkEvent?.Invoke(type);
     }
 
     public int currentDay = -1;
diff --git a/Main/System/Chat/ChatWin.cs b/Main/System/Chat/ChatWin.cs
index 88441ed..1793fce 100644
--- a/Main/System/Chat/ChatWin.cs
+++ b/Main/System/Chat/ChatWin.cs
@@ -99,6 +99,7 @@
         manager.OnChatTabChangeEvent += OnChatTabChange;
         manager.OnUpdateTalkEvent += OnUpdateTalkEvent;
         manager.OnUpdateTalkCacheListEvent += OnUpdateTalkCacheList;
+        manager.OnDeleteTalkEvent += OnDeleteTalkEvent;
 
         scrChatTab.OnRefreshCell += OnRefreshChatTabCell;
         scrWorld.OnGetDynamicSize += OnGetWorldChatDynamicSize;
@@ -110,6 +111,7 @@
 
         clickScreenOtherSpace.AddListener(OnClickScreenOtherSpace);
         GlobalTimeEvent.Instance.secondEvent += OnSecondEvent;
+
 
         isSettingOpen = false;
         transSettings.SetActive(isSettingOpen);
@@ -127,6 +129,7 @@
         manager.OnChatTabChangeEvent -= OnChatTabChange;
         manager.OnUpdateTalkEvent -= OnUpdateTalkEvent;
         manager.OnUpdateTalkCacheListEvent -= OnUpdateTalkCacheList;
+        manager.OnDeleteTalkEvent -= OnDeleteTalkEvent;
 
         scrChatTab.OnRefreshCell -= OnRefreshChatTabCell;
         scrWorld.OnGetDynamicSize -= OnGetWorldChatDynamicSize;
@@ -139,6 +142,18 @@
         clickScreenOtherSpace.RemoveAllListeners();
     }
 
+    private void OnDeleteTalkEvent(ChatChannel channel)
+    {
+        if (channel == ChatChannel.World)
+        {
+            CreateScroller(scrWorld, channel);
+        }
+        else if (channel == ChatChannel.Guild)
+        {
+            CreateScroller(scrGuild, channel);
+        }
+    }
+
     private void OnRefreshGuildCell(ScrollerDataType type, CellView cell)
     {
         OnRefreshCell(type, cell);

--
Gitblit v1.8.0