lcy
2025-12-04 a8a24587a60e19b34ef81dd2e5ae09a64ee07a35
76 聊天系统-客户端 修复删除数据时没有重新刷新滚动条布局
2个文件已修改
17 ■■■■■ 已修改文件
Main/System/Chat/ChatManager.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Chat/ChatWin.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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);