游戏中实现分页还是很有必要的,无论是背包/商店还是其他一些有列表显示的模块,因为实现分页会给手机减轻不少压力。在这里我先说明,我实现的分页是数据已经全部加载完成了的,而其分页的作用也就是减轻GPU的压力。(当然,要想将数据也和显示一一对应的话,也是不难实现的,得看情况和项目需求)
我的思路是这样的,既然已经加载了所有分页的数据,那么按显示进行分开的话,所以在每一页的初始元素在整个列表数据的位置以及末尾元素在整个列表的位置都是有规律地进行变化的。那么,我首先进行的任务的就是根据当前页数去计算该页进行显示的列表的首元素以及末元素在整个数据集的位置了。
在这里我先介绍一下我的页面数字展示是这样定义的:
//每页最多显示个数
const int MAILS_IN_ONE_PAGE = 10;
//保存每个listview对应的页码:当前页码和最大页码
int m_pageStarts[2];