Android中ListView.getCount()與ListView.getChildCount()區別和OnScrollListener()各個引數的區別

yangxi_001發表於2014-12-16

ListView.getCount()(實際上是 AdapterView.getCount()) 返回的是其 Adapter.getCount() 返回的值。也就是“所包含的 Item 總個數”。

  ListView.getChildCount()(ViewGroup.getChildCount) 返回的是顯示層面上的“所包含的子 View 個數”。

  二者有什麼不同?當 ListView 中的 Item 比較少無需滾動即可全部顯示時,二者是等價的;當 Item 個數較多需要滾動才能瀏覽全部的話, getChildCount() < getCount() 其中 getChildCount() 返回的是當前可見的 Item 個數。

  Java程式碼

  listView.setOnScrollListener(new OnScrollListener() {

  @Override

  public void onScrollStateChanged(AbsListView view, int scrollState) {

  // TODO Auto-generated method stub

  }

  @Override

  public void onScroll(AbsListView view, int firstVisibleItem,

  int visibleItemCount, int totalItemCount) {

  // TODO Auto-generated method stub

  /**firstVisibleItem表示在現時螢幕第一個ListItem(部分顯示的ListItem也算)

  在整個ListView的位置(下標從0開始)**/

  Log.i("firstVisibleItem", String.valueOf(firstVisibleItem));

  /**visibleItemCount表示在現時螢幕可以見到的ListItem(部分顯示的ListItem也算)總數**/

  Log.i("visibleItemCount", String.valueOf(visibleItemCount));

  /**totalItemCount表示ListView的ListItem總數**/

  Log.i("totalItemCount", String.valueOf(totalItemCount));

  /**listView.getFirstVisiblePosition()表示在現時螢幕第一個ListItem(第一個ListItem部分顯示也算)

  * 在整個ListView的位置(下標從0開始)**/

  Log.i("firstPosition", String.valueOf(listView.getFirstVisiblePosition()));

  /**listView.getLastVisiblePosition()表示在現時螢幕最後一個ListItem(最後ListItem要完全顯示出來才算)

  * 在整個ListView的位置(下標從0開始)**/

  Log.i("lasPosition", String.valueOf(listView.getLastVisiblePosition()));

  }

  });

相關文章