private void onUpdateHistoryMsg() { // 更新内容 var msgList = LogicDataCenter.snsDataManager.SessionManager.getHistoryMsg(m_SessionName, m_CurPage, PerPageNum); ChatHistroyView.DataSource.BeginUpdate(); ChatHistroyView.DataSource.Clear(); foreach (var msg in msgList) { SNSHistroyMsgItem item = new SNSHistroyMsgItem(); item.nFromAcountID = msg.nFromAcountID; item.nToAcountID = msg.nToAcountID; item.nMsgID = msg.nMsgID; item.nTime = msg.nTime; item.szContent = msg.szContent; item.szName = msg.szFromName; ChatHistroyView.DataSource.Add(item); } ChatHistroyView.DataSource.EndUpdate(); // 更新页数状态 updatePageStatus(); }
public void SetData(SNSHistroyMsgItem data) { m_nMsgID = data.nMsgID; string name = data.szName; string time = Api.convertTimeStamp2DateTime(data.nTime).ToString("yyyy-MM-dd HH:mm"); string content = data.szContent; Transform nameTrans = transform.FindChild("Name"); if (nameTrans == null) { return; } Transform timeTrans = transform.FindChild("Time"); if (timeTrans == null) { return; } Transform contentTrans = transform.FindChild("Content"); if (contentTrans == null) { return; } if (isSelf(data.nFromAcountID)) { name = "<color=#40A3FEFF> " + name + "</color>"; time = "<color=#40A3FEFF> " + time + "</color>"; } nameTrans.GetComponent <Text>().text = name; timeTrans.GetComponent <Text>().text = time; //transform.FindChild("MsgContent").GetComponent<Text>().text = content; // 设置content的最大宽度 RectTransform contentRect = contentTrans as RectTransform; contentRect.sizeDelta = new Vector2(MaxWidth, contentRect.sizeDelta.y); // 设置内容并获取高度 float contentHeight = 0; ChatContentItem item = contentTrans.GetComponent <ChatContentItem>(); if (item != null) { ChatContentItemData itemData = new ChatContentItemData(); itemData.objList = data.objList; item.SetData(itemData); contentHeight = item.Height; } else { Debug.LogError("item == null, This GameObject have no ChatContentItem component."); } // 设置内容的大小 float contentWidth = contentRect.sizeDelta.x; contentRect.sizeDelta = new Vector2(contentWidth, contentHeight); // 计算总高度 m_Height = Math.Abs(contentRect.anchoredPosition.x) + contentHeight + MarginY; if (m_Height < MinHeight) { m_Height = MinHeight; } // 设置DefautItem高度 RectTransform rect3 = transform as RectTransform; rect3.sizeDelta = new Vector2(rect3.sizeDelta.x, m_Height); }