示例#1
0
        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();
        }
示例#2
0
        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);
        }