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

來源:互聯網
上載者:User



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

  }

  });

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.