using System.Collections.Generic; using ET; using FairyGUI; using UI.Bag; using UI.CommonGame; using UnityEngine; namespace GFGGame { public class BagView : BaseWindow { private UI_BagUI _ui; private ValueBarController _valueBarController; // private List _listItemViews = new List(); public override void Dispose() { base.Dispose(); if (_valueBarController != null) { _valueBarController.Dispose(); _valueBarController = null; } // for (int i = 0; i < _listItemViews.Count; i++) // { // _listItemViews[i].Dispose(); // _listItemViews[i] = null; // } if (_ui != null) { _ui.Dispose(); _ui = null; } } protected override void OnInit() { base.OnInit(); packageName = UI_BagUI.PACKAGE_NAME; _ui = UI_BagUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _valueBarController = new ValueBarController(_ui.m_comValueBar); _ui.m_btnback.onClick.Add(OnBtnBackClick); _ui.m_list.SetVirtual(); _ui.m_list.itemRenderer = ListItemRender; _ui.m_list.onClickItem.Add(OnListItemClick); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tc_bjbj"); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateList); } protected override void OnShown() { base.OnShown(); _valueBarController.OnShown(); UpdateList(); } protected override void OnHide() { _valueBarController.OnHide(); if (_ui.m_list.numItems > 0) { _ui.m_list.ScrollToView(0); } _ui.m_list.numItems = 0; base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateList); } private void UpdateList() { _ui.m_list.numItems = BagDataManager.Instance.BagDatas.Count; } private void ListItemRender(int index, GObject obj) { ItemData itemData = BagDataManager.Instance.BagDatas[index]; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(itemData.id); UI_ListItem item = UI_ListItem.Proxy(obj); item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); item.m_txtCount.SetVar("count", itemData.num.ToString()).FlushVars(); item.target.data = itemCfg; } private void OnListItemClick(EventContext context) { GComponent comItem = (context.data as GComponent); ItemCfg itemCfg = comItem.data as ItemCfg; if (itemCfg.subType == 0) { object[] sourceDatas = new object[] { itemCfg.id, new object[] { typeof(BagView).FullName, this.viewData } }; GoodsItemTipsController.ShowItemTips(itemCfg.id, sourceDatas); } else if (itemCfg.subType == 1) { ViewManager.Show(itemCfg.id); } } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(BagView).FullName); } } }