SocialityFriendSelectView = SocialityFriendSelectView or BaseClass(BaseView) function SocialityFriendSelectView:__init() self.base_file = "sociality" self.layout_file = "SocialityFriendSelectView" self.layer_name = "Top" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.is_set_zdepth = true self.click_bg_toClose = true self.model = SocialityModel:getInstance() self.item_list = {} --预加载的Item self:AddPreLoadList("sociality", {"SocialityFriendSelectItem"}) --回调方法 self.load_callback = function() self:LoadSuccess() self:InitEvent() end self.open_callback = function() self:UpdateView() end self.close_callback = function() self.model.select_info = nil self.model.is_open_give_view = false end self.destroy_callback = function() self:Clear() end end function SocialityFriendSelectView:Open( show_data_list,op_type ) self.show_data_list = show_data_list self.op_type = op_type or 1--点击类型,1为显示右侧按钮,2为不显示按钮,整个区域做点击热区 BaseView.Open(self) end function SocialityFriendSelectView:LoadSuccess() self.ScrollView, self.ScrollViewViewport, self.ScrollViewCon = GetChildTransforms(self.transform, { "ScrollView", "ScrollView/Viewport", "ScrollView/Viewport/Content", }) -- self.confirmBtn = self:GetChild("confirmBtn").gameObject self.con_empty_obj = self:GetChild("con_empty").gameObject self.empty_des = self:GetChild("con_empty/lb_empty"):GetComponent("TextMeshProUGUI") self.get_friend_btn = self:GetChild("con_empty/get_friend_btn").gameObject self.get_friend_lb = self:GetChild("con_empty/get_friend_lb"):GetComponent("TextMeshProUGUI") self.get_friend_btn2 = self:GetChild("con_empty/get_friend_text").gameObject end function SocialityFriendSelectView:InitEvent( ) -- local on_click = function ( click_obj ) -- if self.confirmBtn == click_obj then -- if not self.model.select_info then -- Message.show("请选中一个好友") -- return -- end -- self.model.need_show_operation = "none"--收回14010协议后既不打开互动面板,也不对送礼界面进行开闭 -- self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14010, self.model.select_info.role_id) -- self.model:Fire(SocialityModel.SELECT_FIREND, self.model.select_info) -- GlobalEventSystem:Fire(EventName.OPEN_SOCIAL_FRIEND_SEL_VIEW, false) -- self.model.select_info = nil -- end -- end -- AddClickEvent(self.confirmBtn, on_click) local on_click = function ( click_obj ) if self.get_friend_btn == click_obj then GlobalEventSystem:Fire(EventName.OPEN_SOCIALITY_VIEW,2) MateModel:GetInstance():Fire(MateConst.CLOSE_ASK_MATE_VIEW) self:Close() elseif self.get_friend_btn2 == click_obj then GlobalEventSystem:Fire(EventName.OPEN_SOCIALITY_VIEW,2) GlobalEventSystem:Fire(EventName.CLOSE_SOCIAL_FLOWER_VIEW) self:Close() end end AddClickEvent(self.get_friend_btn, on_click) AddClickEvent(self.get_friend_btn2, on_click) end function SocialityFriendSelectView:Clear( ) for k,v in pairs(self.item_list) do v:DeleteMe() end self.item_list = {} end function SocialityFriendSelectView:UpdateView() local list = {} if not self.show_data_list then local all_friend_list = self.model:GetGiveList(self.model:GetSearchInfo()) for k,v in pairs(all_friend_list) do if v.role_id~=1 then table.insert(list,v) end end else list = self.show_data_list end if #list > 0 then for i,v in ipairs(list) do local item = self.item_list[i] if not item then item = SocialityFriendSelectItem.New(self.ScrollViewCon) self.item_list[i] = item end item:SetVisible(true) item:SetData(v,i,self.op_type) -- --给selectItem添加按键绑定 -- local function onBtnClickHandler() -- self:SetSelectIndex(i) -- end -- if item.gameObject then -- AddClickEvent(self.item_list[i].gameObject, onBtnClickHandler,2) -- end end self.con_empty_obj:SetActive(false) else self.con_empty_obj:SetActive(true) if self.op_type == 2 then self.empty_des.text = " 您 暂无好友 或 好友都不在线哦!" self.get_friend_lb.text = "前往添加新的好友" self.get_friend_btn:SetActive(true) self.get_friend_btn2:SetActive(false) else self.empty_des.text = "暂无符合条件的好友~\n\n" self.get_friend_lb.text = "" self.get_friend_btn:SetActive(false) self.get_friend_btn2:SetActive(true) end end for i=#list+1, #self.item_list do self.item_list[i]:SetVisible(false) end end --设置selectItem的选中状态 -- function SocialityFriendSelectView:SetSelectIndex(index) -- for i,v in ipairs(self.item_list) do -- if v.index == index then -- v:SetSelected(true) -- else -- v:SetSelected(false) -- end -- end -- end