日常的開發(fā)工作經(jīng)常需要ListView作為布局的組件,而且很多時(shí)候都會(huì)遇到需要自定義ListView的情況。

    也有些問題并不需要自定義的ListView,基于原生的ListView就能實(shí)現(xiàn),但需要靈活處理Adapter。

    我們現(xiàn)在就遇到一個(gè)棘手的問題:原本的下拉刷新ListView是單個(gè)item的刷新,現(xiàn)在要改成一行兩個(gè)item,照道理來講,這應(yīng)該是一個(gè)GridView,但是要考慮兼容以往的下拉刷新效果,要重新定義一個(gè)這樣的GridView是比較困難的,因?yàn)榇蛩慊谠腖istView進(jìn)行改造,因?yàn)樵镜南吕⑿翷istView本身就是ListView的子類。

    一個(gè)明顯的改變就是在Adapter的getCount()。

    這個(gè)方法返回的是ListView一共要顯示的item的數(shù)目,但是因?yàn)楝F(xiàn)在已經(jīng)改成一行顯示兩個(gè)item,所以實(shí)際顯示的數(shù)目應(yīng)該除以2的,但考慮到如果數(shù)據(jù)源是奇數(shù)的問題,所以代碼如下:

復(fù)制代碼
 @Override public int getCount() { int size = list.size(); if(size % 2 == 0){ return size / 2;
        }else{ return size / 2 + 1;
        }
    }

網(wǎng)友評(píng)論