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

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

    我們現在就遇到一個棘手的問題:原本的下拉刷新ListView是單個item的刷新,現在要改成一行兩個item,照道理來講,這應該是一個GridView,但是要考慮兼容以往的下拉刷新效果,要重新定義一個這樣的GridView是比較困難的,因為打算基于原生的ListView進行改造,因為原本的下拉刷新ListView本身就是ListView的子類。

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

    這個方法返回的是ListView一共要顯示的item的數目,但是因為現在已經改成一行顯示兩個item,所以實際顯示的數目應該除以2的,但考慮到如果數據源是奇數的問題,所以代碼如下:

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

網友評論