using AX.NetworkSystem;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PagesController : MonoBehaviour
{
public static PagesController Instance;
public Button pre;
public Button next;
public GameObject prefab;
public ToggleGroup togGroup;
private int pageCount = 1; //一共的页数
private int pageIndex = 1; //当前显示页数
private QueryOptions queryOptions = new QueryOptions();
private void Awake()
{
Instance = this;
//pre.onClick.AddListener(PrePage);//单机版注释
//next.onClick.AddListener(NextPage);//单机版注释
pre.gameObject.SetActive(false);//非单机版解开注释
next.gameObject.SetActive(false);//非单机版解开注释
}
// Use this for initialization
void Start()
{
ApplyForInitPage();
}
public void ApplyForInitPage()
{
pageIndex = 1;
//1、向服务端申请获取一共的页数,返回调用GetPageCount()
queryOptions.PageNumber = 1; //申请第一页数据
queryOptions.PageSize = 5; //每页显示5条
//NetworkManager.Default.SendAsync("GET_DISASTER_INFOS_REQUEST", queryOptions); //联机版
DisasterList.Instance.ShowIndexDisasters(DisasterInfosManager.Instance.GetDisasterInfos()); //单机版,获取本地灾情列表
}
public void ApplyForPage(int number)
{
pageIndex = number;
queryOptions.PageNumber = number; //申请第一页数据
queryOptions.PageSize = 5; //每页显示5条
//NetworkManager.Default.SendAsync("GET_DISASTER_INFOS_REQUEST", queryOptions);//单机版注释
DisasterList.Instance.ShowIndexDisasters(DisasterInfosManager.Instance.GetDisasterInfos()); //单机版,获取本地灾情列表
}
public void GetPageCount(int count)
{
pageCount = count;
for (int j = 0; j < transform.childCount; j++)
{
Destroy(transform.GetChild(j).gameObject);
}
//生成页码
InstantiatePageIndex();
CheckPreNextButton();
}
///
/// 生成页码
///
///
private void InstantiatePageIndex()
{
if (pageCount < 10)
{
for (int i = 0; i < pageCount; i++)
{
GameObject indexItem = Instantiate(prefab, transform);
indexItem.GetComponent().Index = i + 1;
if (i + 1 == pageIndex)
{
indexItem.GetComponent().OnThisPage();
}
}
}
else if (pageIndex - 4 > 1 && pageIndex + 4 < pageCount)
{
for (int j = pageIndex - 4; j <= pageIndex + 4; j++)
{
GameObject indexItem = Instantiate(prefab, transform);
indexItem.GetComponent().Index = j;
if (j == pageIndex)
{
indexItem.GetComponent().OnThisPage();
}
}
}
else if (pageIndex - 4 > 1 && pageIndex + 4 >= pageCount)
{
for (int k = pageCount - 8; k <= pageCount; k++)
{
GameObject indexItem = Instantiate(prefab, transform);
indexItem.GetComponent().Index = k;
if (k == pageIndex)
{
indexItem.GetComponent().OnThisPage();
}
}
}
else //if (pageIndex < 6 && pageCount>9)
{
for (int l = 1; l < 10; l++)
{
GameObject indexItem = Instantiate(prefab, transform);
indexItem.GetComponent().Index = l;
if (l == pageIndex)
{
indexItem.GetComponent().OnThisPage();
}
}
}
}
private void CheckPreNextButton()
{
if (pageIndex == 1)
{
pre.interactable = false;
if (pageCount == 1)
{
next.interactable = false;
}
else
{
next.interactable = true;
}
}
else if (pageIndex == pageCount)
{
next.interactable = false;
if (pageCount > 1)
{
pre.interactable = true;
}
else
{
pre.interactable = false;
}
}
else
{
pre.interactable = true;
next.interactable = true;
}
}
private void PrePage()
{
pageIndex -= 1;
//如果页码是第一页,禁用“上一页”按钮
if (pageIndex == 1)
{
pre.interactable = false;
}
//如果页码是倒数第二页,恢复“下一页”按钮
else if (pageIndex == pageCount - 1)
{
next.interactable = true;
}
//向服务端申请第pageIndex页数据
ApplyForPage(pageIndex);
}
private void NextPage()
{
pageIndex += 1;
if (pageIndex == pageCount)
{
next.interactable = false;
}
else if (pageIndex == 2)
{
pre.interactable = true;
}
//向服务端申请第pageIndex页数据
ApplyForPage(pageIndex);
}
}