仿百度、google分頁的實現

仿百度、google分頁的實現

 

       前段時間寫了個仿百度、google分頁,現在和大家分享一下。大家有什麼問題可以和我交流。

    首先我們分析一下google的分頁情況:(百度也是一樣的,這裏只寫google的情況)

 

    下面給出大家一段java代碼,好讓大家往下容易理解。

// 當前頁
private int nowpage;
// 索引的sum值 代表的是 google頁面中最大顯示頁數
private int sumindex = 20;
// 開始的索引值
private int startindex;
// 結束的索引值
private int endindex;

 

當前頁是1        顯示的是: 1 2 3 4 5 6 7 8 9 10

 

當前頁是2     起始值1  未頁 11  

 

 

 

 

 當前頁是3     起始值1  未頁 12

 

 

 當前頁是4     起始值1  未頁 13

 

以此類推:...

 

從上圖得知:

 

    當前頁小於等於11時  起始頁爲1  末頁=當前頁+9

 

startindex=1;
endindex=nowpage+9;

 注意:

      求和值後的endindex 如果endindex大於總頁數。 那麼: this.endindex=this.countpage;

 

 

 實現方式如下:

if (this.nowpage <= sumindex/2+1) {
	this.startindex = 1;
	this.endindex = this.nowpage + sumindex/2-1
			
	//當結束的索引值>總頁數
	if(this.endindex>this.countpage){
		this.endindex=this.countpage;
	}
			
}

 

 當前頁大於11時:

 

 

            當前頁是12        起始值是2    未頁 21

 

 

 

 

            當前頁是13        起始值是3    未頁 22

 

 

             當前頁是14        起始值是4   未頁 23

 

從上圖得知 當前頁大於11時 

   1.當前頁與尾頁的差少9    開始索引與當前頁 差10 

endindex=nowpage+sumindex/2-1;
startindex=nowapge-sumindex/2;  

 

   注意:求和值後的endindex,如果endindex大於總頁數

this.endindex=this.countpage;
this.startindex=this.countpage-sumindex/-1;

 

 

 實現代碼如下:

 

if(this.nowpage>sumindex/2+1){
	this.startindex=this.nowpage-sumindex/2;		this.endindex=this.nowpage+sumindex/2-1;		//當結束的索引值>總頁數
	//當結束的索引值>索引的sum值 代表的是 google頁面中最大顯示頁數
	if(this.endindex>this.countpage&&this.endindex>this.sumindex){	this.endindex=this.countpage;			this.startindex=this.countpage-sumindex-1;		}
	//當結束的索引值<索引的sum值 代表的是 google頁面中最大顯示頁數
	if(this.endindex<this.sumindex){
	        this.startindex = 1;
	        this.endindex = this.countpage;
	}
}

 

 整合後的代碼如下:

 

// 計算索引位置
if (this.nowpage <= sumindex/2+1) {
	this.startindex = 1;
	this.endindex = this.nowpage + sumindex/2-1;
			
	//當結束的索引值>總頁數
	if(this.endindex>this.countpage){
		this.endindex=this.countpage;
	}
}else if(this.nowpage>sumindex/2+1){
	this.startindex=this.nowpage-sumindex/2;
			this.endindex=this.nowpage+sumindex/2-1;	
	//當結束的索引值>總頁數
	//當結束的索引值>索引的sum值 代表的是 google頁面中最大顯示頁數
	if
(this.endindex>this.countpage&&this.endindex>this.sumindex){
				this.endindex=this.countpage;
				this.startindex=this.countpage-sumindex-1;
	}
	//當結束的索引值<索引的sum值 代表的是 google頁面中最大顯示頁數
	if(this.endindex<this.sumindex){
	this.startindex = 1;
	this.endindex = this.countpage;
                }
}

 

   備註:

           別的代碼沒貼,如需要大家可以給我留言

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章