BlockSettingItem = BlockSettingItem or BaseClass(BaseItem) function BlockSettingItem:__init() self.base_file = "setting" self.layout_file = "BlockSettingItem" self.is_delay_callback = true self.state = false self:Load() end function BlockSettingItem:Load_callback() self.label = self:GetChild("Label"):GetComponent("TextMeshProUGUI") self.label_obj = self:GetChild("Label") self.toggle = self.gameObject:GetComponent("Toggle") if self.need_refreshData then self:SetData(self.data,self.call_back) end if self.need_refreshState then self:SetState(self.state) end self:InitEvent() end function BlockSettingItem:InitEvent() local function onToggleClickHandler(target) if target == self.gameObject then self.state = self.toggle.isOn if self.data == nil or self.call_back == nil then return end self.call_back(self.data.block_str,self.state) local color_str = self.state and "#f3fcff" or "#a9c1e1" self.label.color = ColorUtil:ConvertHexToRGBColor(color_str) end end AddClickEvent(self.gameObject,onToggleClickHandler) end function BlockSettingItem:SetData(data,call_back) self.data = data self.call_back = call_back if self.is_loaded then self.label.text = data.name or "" self.need_refreshData = false -- --显示该项是否重登后才生效 -- if data.next_login == true then -- self.label_obj.localPosition = Vector3(23.75,10.3,0) -- self.add_label:SetActive(true) -- else -- self.label_obj.localPosition = Vector3(23.75,0,0) -- self.add_label:SetActive(false) -- end else self.need_refreshData = true end end function BlockSettingItem:SetState(state) self.state = state if self.is_loaded then self.toggle.isOn = state self.need_refreshState = false local color_str = state and "#f3fcff" or "#a9c1e1" self.label.color = ColorUtil:ConvertHexToRGBColor(color_str) else self.need_refreshState = true end end function BlockSettingItem:__delete() end