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())); } }); |