Unity3d的翻页

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 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值