ClanSearchView.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. public class ClanSearchView : View {
  6. public Text findLabel;
  7. public InputField findInput;
  8. public Text findTips;
  9. public Text findButtonLabel;
  10. public Transform clanContainer;
  11. public ClanItem clanItemPrefab;
  12. private List<ClanData> clanList;
  13. void Start()
  14. {
  15. findLabel.text = Language.GetStr ("ClanPanel", "findLabel");
  16. findTips.text = Language.GetStr ("ClanPanel", "findTips");
  17. findButtonLabel.text = Language.GetStr ("ClanPanel", "findBtnLabel");
  18. findInput.onValidateInput += StringUtil.InputValidateHandler;
  19. OnFillClan (clanList);
  20. }
  21. protected override void OnDestroy ()
  22. {
  23. base.OnDestroy ();
  24. findInput.onValidateInput -= StringUtil.InputValidateHandler;
  25. }
  26. protected override void OnVisibleChanged ()
  27. {
  28. if (visible) {
  29. if (Session.GetInstance ().myUserData.clanId == 0 && clanList == null) {
  30. ShowRecommend ();
  31. }
  32. }
  33. }
  34. public void OnFindInputChanged()
  35. {
  36. findInput.text = StringUtil.LimitInput (findInput.text, Config.MAX_ARRAY_NAME_LENGTH);
  37. }
  38. public void ShowRecommend()
  39. {
  40. ClanManager.GetInstance ().FindClan ("", OnFillClan);
  41. }
  42. public void Find()
  43. {
  44. // if (!StringUtil.Empty (findInput.text)) {
  45. ClanManager.GetInstance ().FindClan (findInput.text, OnFillClan);
  46. // }
  47. }
  48. private void OnFillClan(List<ClanData> list)
  49. {
  50. this.clanList = list;
  51. int index = 0;
  52. if(list != null)
  53. {
  54. for(int i=0; i<clanList.Count; i++)
  55. {
  56. ClanItem item = null;
  57. if (i >= clanContainer.childCount) {
  58. item = Instantiate<GameObject> (clanItemPrefab.gameObject).GetComponent<ClanItem> ();
  59. PopUpManager.AddToMainCanvas (item.gameObject, clanContainer);
  60. } else {
  61. item = clanContainer.GetChild (i).GetComponent<ClanItem> ();
  62. }
  63. item.gameObject.SetActive (true);
  64. item.SetData (clanList [i]);
  65. index++;
  66. }
  67. }
  68. while(index < clanContainer.childCount)
  69. {
  70. clanContainer.GetChild (index).gameObject.SetActive (false);
  71. index++;
  72. }
  73. }
  74. }