ComboxItem = ComboxItem or BaseClass(BaseItem) local ComboxItem = ComboxItem ComboxItem.Height = 38 function ComboxItem:__init(parent_wnd, prefab_asset, layer_name, prefab_data) self.base_file = prefab_asset or "uiComponent" if prefab_data and prefab_data.ComboxItem then self.layout_file = prefab_data and prefab_data.ComboxItem else self.layout_file = "ComboxItem" end self.show_red = nil self:Load() end function ComboxItem:Load_callback() self:LoadSuccess() end function ComboxItem:LoadSuccess() self.show_text = self:GetChild("text"):GetComponent(typeof(TMPro.TextMeshProUGUI)) self.img_red_obj = self:GetChild("img_red").gameObject self.di_line = self:GetChild("bg_41_1") if self.width then self:SetWidth(self.width) end self:AddEvents() if self.need_refreshData then self:UpdateView() end end function ComboxItem:SetWidth(width) self.width = width if self.is_loaded then self.need_resetWidth = false SetSizeDeltaX(self.transform, self.width) else self.need_resetWidth = true end end function ComboxItem:AddEvents( ) local function onClick(...) if self.callback then self.callback(self.index) end end AddClickEvent(self.gameObject,onClick) end function ComboxItem:UpdateView( ) self.show_text.text = self.str self.img_red_obj:SetActive(self.show_red and true or false) end function ComboxItem:SetData(index,str,callback,show_red) self.index = index self.str = str self.callback = callback self.show_red = show_red if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function ComboxItem:__delete( ) end