SocialityView = SocialityView or BaseClass(BaseView) function SocialityView:__init() self.base_file = "sociality" self.layout_file = "SocialityView" self.layer_name = "UI" self.destroy_imm = true self.use_background = true self.hide_maincancas = true self.change_scene_close = true self.open_wnd_anim = 0 self.append_to_ctl_queue = true self.model = SocialityModel:getInstance() self.blur_activity_bg = true self.use_show_anim = true self.use_hide_anim = true self.sub_view_list = {} --预加载的Item self:AddPreLoadList("chat",{"chatItem"}) --回调方法 self.load_callback = function() self:LoadSuccess() self:AddEvent() self:RefreshRed() end self.open_callback = function() self:SwitchView(self.cur_index) self.tabWindowComponent:SetTabBarIndex(self.cur_index) self.model.sociality_is_open = true end self.close_callback = function() GlobalEventSystem:Fire(EventName.MAIN_VOICE_BIND) self.model.sociality_is_open = false -- --保存聊天记录 -- CookieWrapper.Instance:WriteChatHistroy() end self.destroy_callback = function() self:Clear() end end function SocialityView:Open( index ) self.cur_index = index or 1 BaseView.Open(self) end function SocialityView:AddEvent( ) local onRed = function ( ) self:RefreshRed() end self.social_event_id = GlobalEventSystem:Bind(EventName.REFRESH_SOCIAL_RED_DOT, onRed) end function SocialityView:RefreshRed( ) for i=1, 3 do if i==1 then --好友 self.tabWindowComponent:ShowRedPoint(i, MainUIModel:getInstance():IsShowFriendRed()) elseif i==3 then --邮件 self.tabWindowComponent:ShowRedPoint(i, MainUIModel:getInstance():IsShowMailRed()) elseif i==2 then --好友申请 self.tabWindowComponent:ShowRedPoint(i, MainUIModel:getInstance():IsShowApplyRed()) end end end function SocialityView:LoadSuccess() self.container = self:GetChild("container") local select_callback = function(index) self:SwitchView(index) end local close_callback = function() self:Close() end local menu_name_list = self.model:GetTabData() self.tabWindowComponent = UITabWindow.New(self.transform, menu_name_list, select_callback, close_callback, self.background_wnd, self.container,UITabWindow.SizeSmallHall,nil,nil,true) self.tabWindowComponent:SetBackgroundRes("default_bg_6") end function SocialityView:SwitchView( index ) if index == 1 or index == 2 then if not GetModuleIsOpen(140) then Message.show(string.format("%d级开放", GetModuleOpenLevel(140))) self.tabWindowComponent:SetTabBarIndex(2) return end end self.tabWindowComponent:SetTabBarIndex(index) self.cur_index = index local sub_view = self.model:GetSocialSubView(index) if sub_view and not self.sub_view_list[index] then self.sub_view_list[index] = sub_view.New(self.container) --更新列表 if index == 3 then self.sub_view_list[index]:ShowPanel() end end if self.last_index and self.sub_view_list[self.last_index] then self.sub_view_list[self.last_index]:SetVisible(false) end if self.sub_view_list[index] then self.sub_view_list[index]:SetVisible(true) end self.last_index = index local title_res if index == 1 then title_res ="好友" elseif index == 2 then title_res ="添加" elseif index == 3 then title_res ="邮件" end self.tabWindowComponent:SetTitleText(title_res) end function SocialityView:Clear( ) for k,v in pairs(self.sub_view_list) do v:DeleteMe() end self.sub_view_list = {} if self.social_event_id then GlobalEventSystem:UnBind(self.social_event_id) self.social_event_id = nil end if self.tabWindowComponent then self.tabWindowComponent:DeleteMe() self.tabWindowComponent = nil end end