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
|