using System.Collections.Generic; using ET; using FairyGUI; using UI.Poem; using UnityEngine; namespace GFGGame { public class PoemGalleryView : BaseWindow { private UI_PoemGalleryUI _ui; private GList _list; private List _galleryDatas = new List(); private int _sortType = 0;//由GallerySortType定义 private int _pageCount = 10; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_PoemGalleryUI.PACKAGE_NAME; _ui = UI_PoemGalleryUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hc_bj_1"); _ui.m_comNormal.m_comBoBox.items = new string[] { "推荐", "最新" }; _ui.m_btnback.onClick.Add(OnBtnBackClick); _ui.m_btnRecover.onClick.Add(OnBtnRecoverClick); _ui.m_btnJoin.onClick.Add(OnBtnJoinClick); _ui.m_btnFavorites.onClick.Add(OnBtnFavoritesClick); _ui.m_comNormal.m_listRecommend.itemRenderer = RenderListItem; _ui.m_comNormal.m_listRecommend.SetVirtual(); _ui.m_comNormal.m_listRecommend.scrollPane.onPullDownRelease.Add(onPullDownRelease); _ui.m_comNormal.m_listRecommend.scrollPane.header.onSizeChanged.Add(OnSizeChanged); _ui.m_comNormal.m_listRecommend.scrollPane.onScroll.Add(onScroll); _ui.m_comNormal.m_listFriend.itemRenderer = RenderListItem; _ui.m_comNormal.m_listFriend.SetVirtual(); _ui.m_comNormal.m_listFriend.scrollPane.onScroll.Add(onScroll); _ui.m_comNormal.m_listRank.itemRenderer = RenderListRankItem; _ui.m_comNormal.m_listRank.SetVirtual(); _ui.m_comNormal.m_listRank.scrollPane.onScroll.Add(onScroll); _ui.m_comFavorites.m_listFavorite.itemRenderer = RenderListItem; _ui.m_comFavorites.m_listFavorite.SetVirtual(); _ui.m_comFavorites.m_listFavorite.scrollPane.onScroll.Add(onScroll); _ui.m_comFavorites.m_listMySelf.itemRenderer = RenderListItem; _ui.m_comFavorites.m_listMySelf.SetVirtual(); _ui.m_comFavorites.m_listMySelf.scrollPane.onScroll.Add(onScroll); _ui.m_comNormal.m_btnShop.onClick.Add(OnBtnShopClick); _ui.m_comNormal.m_btnReward.onClick.Add(OnBtnRewardClick); // _ui.m_c1.onChanged.Add(OnTabChange); _ui.m_comNormal.m_c1.onChanged.Add(OnNormalTabChange); _ui.m_comFavorites.m_c1.onChanged.Add(OnFavoritesTabChange); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.GALLERY_DATA_CHANGE, UpdateGalleryList); EventAgent.AddEventListener(ConstMessage.GALLERY_RANK_DATA_CHANGE, UpdateGalleryRankList); } protected override void OnShown() { base.OnShown(); _list = _ui.m_comNormal.m_listRecommend; _list.numItems = 4; } protected override void OnHide() { base.OnHide(); ResetPullDownRelease(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.GALLERY_DATA_CHANGE, UpdateGalleryList); EventAgent.RemoveEventListener(ConstMessage.GALLERY_RANK_DATA_CHANGE, UpdateGalleryRankList); } private void OnBtnBackClick() { ViewManager.GoBackFrom(typeof(PoemGalleryView).FullName); } /// /// 投稿 /// private void OnBtnJoinClick() { ViewManager.Show(1, new object[] { typeof(PoemGalleryView).FullName, this.viewData }, true); } /// /// 首页 /// private void OnBtnRecoverClick() { if (_ui.m_comNormal.m_c1.selectedIndex == 0) { onPullDownRelease(); // OnNormalTabChange();//每次点首页都要刷新 } else { _ui.m_comNormal.m_c1.selectedIndex = 0; } } /// ///收藏夹 /// private void OnBtnFavoritesClick() { if (_ui.m_comFavorites.m_c1.selectedIndex != 0) { _ui.m_comFavorites.m_c1.selectedIndex = 0; } ResetPullDownRelease(); } // /// // /// 切换ui页签:首页,投稿,收藏 // /// // private void OnTabChange() // { // if (_ui.m_c1.selectedIndex == 0)//刷新首页 // { // if (_ui.m_comNormal.m_c1.selectedIndex == 0) // { // OnNormalTabChange(); // } // else // { // _ui.m_comNormal.m_c1.selectedIndex = 0; // } // } // else if (_ui.m_c1.selectedIndex == 2)//刷新收藏页 // { // if (_ui.m_comFavorites.m_c1.selectedIndex == 0) // { // OnFavoritesTabChange(); // } // else // { // _ui.m_comFavorites.m_c1.selectedIndex = 0; // } // } // } /// /// 切换首页页签 /// private void OnNormalTabChange() { ResetPullDownRelease(); if (_ui.m_comNormal.m_c1.selectedIndex == 2)//排行榜 { } else { if (_ui.m_comNormal.m_c1.selectedIndex == 0)//首页 { // _infoType = GalleryType.Recommend; if (_ui.m_comNormal.m_comBoBox.selectedIndex == 0)//推荐 { _sortType = (int)GallerySortType.Recommend; _galleryDatas = PoemGalleryDataManager.Instance.RecommendDatas; } else//最新 { _sortType = (int)GallerySortType.Newest; _galleryDatas = PoemGalleryDataManager.Instance.NewestDatas; } _list = _ui.m_comNormal.m_listRecommend; } else if (_ui.m_comNormal.m_c1.selectedIndex == 1)//好友 { _sortType = (int)GallerySortType.Friend; _galleryDatas = PoemGalleryDataManager.Instance.FrinedDatas; _list = _ui.m_comNormal.m_listFriend; } if (_list.numItems > 0) _list.ScrollToView(0); ReqGalleryList(0); } } /// /// 切换收藏页签 /// private void OnFavoritesTabChange() { if (_ui.m_comFavorites.m_c1.selectedIndex == 0)//我的收藏 { _sortType = (int)GallerySortType.MyCollect; _galleryDatas = PoemGalleryDataManager.Instance.FrinedDatas; _list = _ui.m_comFavorites.m_listFavorite; } else if (_ui.m_comFavorites.m_c1.selectedIndex == 1)//我的作品 { _sortType = (int)GallerySortType.MyWorks; _galleryDatas = PoemGalleryDataManager.Instance.FrinedDatas; _list = _ui.m_comFavorites.m_listMySelf; } if (_list.numItems > 0) _list.ScrollToView(0); ReqGalleryList(0); } //分页刷新 private void onScroll() { int itemIndex = _list.ChildIndexToItemIndex(0); int startIndex = itemIndex + 1; if (startIndex >= _list.numItems && startIndex % _pageCount == 0) { ReqGalleryList(startIndex); } } //请求刷新 private void ReqGalleryList(int startIndex) { PoemGallerySProxy.ReqGalleryList(_sortType, startIndex, _pageCount).Coroutine(); } private void UpdateGalleryList() { _list.numItems = _galleryDatas.Count; } private void UpdateGalleryRankList() { _ui.m_comNormal.m_listRank.numItems = _galleryDatas.Count; } /// /// 积分商店 /// private void OnBtnShopClick() { ViewManager.Show(new object[] { ConstStoreId.GALLERY_STORE_ID }, new object[] { typeof(PoemGalleryView).FullName, this.viewData }, true); } /// /// 排行榜奖励 /// private void OnBtnRewardClick() { ViewManager.Show(null, new object[] { typeof(PoemGalleryView).FullName, this.viewData }); } private void RenderListItem(int index, GObject obj) { // PoemGalleryData data = _galleryDatas[index]; // UI_ListItem item = UI_ListItem.Proxy(obj); // if (item.m_loaIcon.data == null) // { // item.m_loaIcon.onClick.Add(OnLoaIconClick); // } // item.m_loaIcon.data = data; // if (item.m_btnCollect.data == null) // { // item.m_btnCollect.onClick.Add(OnBtnCollectClick); // } // item.m_btnCollect.data = data; // if (item.m_btnVote.data == null) // { // item.m_btnVote.onClick.Add(OnBtnVoteClick); // } // item.m_btnVote.data = data; // UI_ListItem.ProxyEnd(); } private void RenderListRankItem(int index, GObject obj) { } private void OnLoaIconClick(EventContext context) { GObject obj = context.data as GObject; PoemGalleryData data = obj.data as PoemGalleryData; } private void OnBtnCollectClick(EventContext context) { GObject obj = context.data as GObject; PoemGalleryData data = obj.data as PoemGalleryData; } private void OnBtnVoteClick(EventContext context) { GObject obj = context.data as GObject; PoemGalleryData data = obj.data as PoemGalleryData; } //下拉刷新 private void onPullDownRelease() { // ReqGalleryList(0); GComponent header = _ui.m_comNormal.m_listRecommend.scrollPane.header; Controller controller = header.GetController("c1"); controller.selectedIndex = 1; _ui.m_comNormal.m_listRecommend.scrollPane.LockHeader(header.sourceHeight); Timers.inst.Add(2, 1, OnTimeComplete); } private void OnTimeComplete(object param) { GComponent header = _ui.m_comNormal.m_listRecommend.scrollPane.header; // Controller controller = header.GetController("c1"); header.GetController("c1").selectedIndex = 2; _ui.m_comNormal.m_listRecommend.scrollPane.LockHeader(0); } private void OnSizeChanged() { GComponent header = _ui.m_comNormal.m_listRecommend.scrollPane.header; Controller controller = _ui.m_comNormal.m_listRecommend.scrollPane.header.GetController("c1"); if (header.height <= 1) { controller.selectedIndex = 0; } } /// /// 重置下拉刷新状态 /// private void ResetPullDownRelease() { Timers.inst.Remove(OnTimeComplete); OnTimeComplete(null); } } }