FriendFindView.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. public class FriendFindView : View
  6. {
  7. public Text findLabel;
  8. public InputField inputField;
  9. public Text findBtnLabel;
  10. public Text findTipTxt;
  11. public Transform container;
  12. public FriendFindItem itemPrefab;
  13. void Awake()
  14. {
  15. findLabel.text = Language.GetStr ("ChatPanel", "findLabel");
  16. findBtnLabel.text = Language.GetStr ("ChatPanel", "findBtnLabel");
  17. findTipTxt.text = Language.GetStr ("ChatPanel", "findTip");
  18. inputField.onValidateInput += StringUtil.InputValidateHandler;
  19. OnFindResult (null);
  20. }
  21. protected override void OnDestroy ()
  22. {
  23. base.OnDestroy ();
  24. ChatManager.GetInstance ().FindFriendResult.RemoveListener (OnFindResult);
  25. inputField.onValidateInput -= StringUtil.InputValidateHandler;
  26. }
  27. public void FindInputChanged()
  28. {
  29. inputField.text = StringUtil.LimitInput (inputField.text, Config.MAX_USER_NAME_LENGTH);
  30. }
  31. public void Find()
  32. {
  33. if (!StringUtil.Empty (inputField.text)) {
  34. ChatManager.GetInstance ().FindFriendResult.AddListener (OnFindResult);
  35. ChatManager.GetInstance ().FindFriend (inputField.text);
  36. }
  37. }
  38. private void OnFindResult(List<UserData> list)
  39. {
  40. ChatManager.GetInstance ().FindFriendResult.RemoveListener (OnFindResult);
  41. int index = 0;
  42. if(list != null)
  43. {
  44. for(int i=0; i<list.Count; i++)
  45. {
  46. FriendFindItem item = null;
  47. if (i < container.childCount) {
  48. item = container.GetChild (i).GetComponent<FriendFindItem> ();
  49. } else {
  50. item = Instantiate<GameObject> (itemPrefab.gameObject).GetComponent<FriendFindItem> ();
  51. PopUpManager.AddToMainCanvas (item.gameObject, container);
  52. }
  53. item.gameObject.SetActive (true);
  54. item.SetData (list [i]);
  55. index++;
  56. }
  57. }
  58. for(int i=index; i<container.childCount; i++)
  59. {
  60. FriendFindItem item = container.GetChild(i).GetComponent<FriendFindItem>();
  61. item.gameObject.SetActive (false);
  62. }
  63. }
  64. }