using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 进行翻页
/// </summary>
public class TurnPage : MonoBehaviour
{
public Text[] SevenText;//7个页码
public Button[] SevenBtn;//7个按钮
public Button LeftBtn;//左侧的按钮
public Button RightBtn;//右侧的按钮
public int CurrentAllPage;//一共有多少页
public InputField InputNumber;//输入的页码(要跳转的页码)
public Button JumpBtn;//跳转的按钮
private int ButtonNumber;
/// <summary>
/// 当前请求的是第几页的内容
/// </summary>
int AskPage = -1;
/// <summary>
/// 上一次是点击的第几页
/// </summary>
int LastPage = -1;
/// <summary>
/// 上一次点击的是第几个按钮
/// </summary>
int LastIndex = -1;
void Start()
{
CurrentAllPage = 45;
AskPage = 1;
RefreshAgain();
InputNumber.text = "";
ButtonNumber = SevenBtn.Length;
}
/// <summary>
/// 跳转的按钮调用的方法
/// </summary>
public void Btn_Jump()
{
if (string.IsNullOrEmpty(InputNumber.text))
{
Debug.Log("输入框的内容为空");
return;
}
if (CurrentAllPage >= (int.Parse(InputNumber.text) )&& (int.Parse(InputNumber.text)) >= 1)
AskPage = (int.Parse(InputNumber.text));
else
{
Debug.Log("当前最大的页码为" + CurrentAllPage);
return;
}
RefreshAgain();
InputNumber.text = "";
}
/// <summary>
/// 刷新
/// </summary>
public void RefreshAgain()
{
LastPage = AskPage;
Debug.Log("目前请求的是第" + AskPage + "页的内容");
if (CurrentAllPage <= ButtonNumber)
{
// LeftBtn.gameObject.SetActive(false);
// RightBtn.gameObject.SetActive(false);
for (int i = 0; i < SevenBtn.Length; i++)
{
if (i < CurrentAllPage)
{
SevenBtn[i].gameObject.SetActive(true);
SevenText[i].text = (i + 1).ToString();
}
else
{
SevenBtn[i].gameObject.SetActive(false);
}
if (SevenText[i].text == AskPage.ToString())
{
SevenBtn[i].GetComponent<Image>().color = Color.red;
LastIndex = i;
}
else
{
SevenBtn[i].GetComponent<Image>().color = new Color(0, 21 / 255f, 72 / 255f);
}
}
}
else
{
LeftBtn.gameObject.SetActive(true);
RightBtn.gameObject.SetActive(true);
if (AskPage <= 5)
{
Debug.Log("刷新2");
SevenText[0].text = 1.ToString();
SevenText[1].text = 2.ToString();
SevenText[2].text = 3.ToString();
SevenText[3].text = 4.ToString();
SevenText[4].text = 5.ToString();
SevenText[5].text = "...";
SevenText[6].text = CurrentAllPage.ToString();
}
else if (AskPage >= CurrentAllPage - 4)
{
Debug.Log("刷新3");
SevenText[0].text = 1.ToString();
SevenText[1].text = "...";
SevenText[2].text = (CurrentAllPage - 4).ToString();
SevenText[3].text = (CurrentAllPage - 3).ToString();
SevenText[4].text = (CurrentAllPage - 2).ToString();
SevenText[5].text = (CurrentAllPage - 1).ToString();
SevenText[6].text = CurrentAllPage.ToString();
}
else
{
Debug.Log("刷新4");
SevenText[0].text = 1.ToString();
SevenText[1].text = "...";
SevenText[2].text = AskPage.ToString();
SevenText[3].text = (AskPage + 1).ToString();
SevenText[4].text = (AskPage + 2).ToString();
SevenText[5].text = "...";
SevenText[6].text = CurrentAllPage.ToString();
}
for (int i = 0; i < SevenBtn.Length; i++)
{
SevenBtn[i].gameObject.SetActive(true);
if (SevenText[i].text == AskPage.ToString())
{
SevenBtn[i].GetComponent<Image>().color = Color.red;
LastIndex = i;
}
else
SevenBtn[i].GetComponent<Image>().color = new Color(0, 21 / 255f, 72 / 255f);
}
}
}
/// <summary>
/// 点击的第几个按钮
/// </summary>
/// <param name="index"></param>
public void Btn_ClickBtn(int index)
{
switch (index)
{
case 0:
Debug.Log("点击第1个按钮");
AskPage = (int.Parse(SevenText[index].text));
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
case 1:
Debug.Log("点击第2个按钮");
string number1 = SevenText[index].text;
if (number1 != "...")
{
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
AskPage = (int.Parse(SevenText[index].text));
}
else if (index > LastIndex && LastPage + 5 < CurrentAllPage)
{
AskPage = LastPage + 5;
Debug.Log("当前请求的是第" + LastPage + 5 + "页的内容");
}
else if (index < LastIndex && LastPage - 5 >= 1)
{
AskPage = LastPage - 5;
Debug.Log("当前请求的是第" + (LastPage - 5) + "页的内容");
}
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
case 2:
Debug.Log("点击第3个按钮");
AskPage = (int.Parse(SevenText[index].text));
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
case 3:
Debug.Log("点击第4个按钮");
AskPage = (int.Parse(SevenText[index].text));
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
case 4:
Debug.Log("点击第5个按钮");
AskPage = (int.Parse(SevenText[index].text));
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
case 5:
Debug.Log("点击第6个按钮");
string number = SevenText[index].text;
if (number != "...")
{
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
AskPage = (int.Parse(SevenText[index].text));
}
else if (index > LastIndex && LastPage + 5 <= CurrentAllPage)
{
AskPage = LastPage + 5;
Debug.Log("当前请求的是第" + AskPage + "页的内容");
}
else if (index < LastIndex && LastPage - 5 >= 1)
{
AskPage = LastPage - 5;
Debug.Log("当前请求的是第" + AskPage + "页的内容");
}
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
case 6:
Debug.Log("点击第7个按钮");
AskPage = (int.Parse(SevenText[index].text));
Debug.Log("当前请求的是第" + SevenText[index].text + "页的内容");
// LastPage = AskPage;
LastIndex = index;
RefreshAgain();
break;
}
}
/// <summary>
/// 上一页
/// </summary>
public void Btn_Left()
{
if (AskPage == 1)
{
Debug.Log("当前是首页");
return;
}
AskPage--;
LastPage = AskPage;
LastIndex--;
RefreshAgain();
}
/// <summary>
/// 下一页
/// </summary>
public void Btn_Right()
{
if (AskPage == CurrentAllPage)
{
Debug.Log("当前是最后一页");
return;
}
AskPage++;
LastPage = AskPage;
LastIndex--;
RefreshAgain();
}
/// <summary>
/// 重新更新总页码
/// </summary>
/// <param name="number"></param>
public void Refresh(int AllNumber, int PerPageNumber)
{
if (AllNumber % PerPageNumber == 0)
{
CurrentAllPage = (int)(AllNumber / PerPageNumber);
}
else
{
CurrentAllPage = (int)(AllNumber / PerPageNumber) + 1;
}
if (CurrentAllPage <= ButtonNumber)
{
JumpBtn.gameObject.SetActive(false);
InputNumber.gameObject.SetActive(false);
for (int i = 0; i < SevenBtn.Length; i++)
{
if (i < CurrentAllPage)
{
SevenBtn[i].gameObject.SetActive(true);
SevenText[i].text = (i + 1).ToString();
}
else
SevenBtn[i].gameObject.SetActive(false);
}
}
else
{
JumpBtn.gameObject.SetActive(true);
InputNumber.gameObject.SetActive(true);
for (int i = 0; i < SevenBtn.Length; i++)
{
SevenBtn[i].gameObject.SetActive(true);
SevenText[i].text = (i + 1).ToString();
if (i == ButtonNumber-2)
{
SevenText[i].text = "...";
}
else if (i == ButtonNumber-1)
{
SevenText[i].text = CurrentAllPage.ToString();
}
}
}
if (CurrentAllPage >= 0)
{
Btn_ClickBtn(0);
}
}
}
参考链接:https://blog.csdn.net/wk201403010114/article/details/88760909