Android中ListView.getCount()與ListView.getChildCount()區別和OnScrollListener()各個引數的區別
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()));
}
});
相關文章
- Android中 @和?區別以及?attr/**與@style/**等的區別Android
- subprocess中命令為引數序列和字串的區別字串
- Java引數-Xms和-Xmx的區別Java
- MySQL各個版本區別MySql
- my.cnf中[mysql]與[mysqld]下引數的區別MySql
- Python 函式中引數前面一個和兩個星號(**)的區別Python函式
- js中!和!!的區別與用法JS
- .Net Framework各個版本區別Framework
- Oracle中單引號和雙引號的區別Oracle
- PHP中單引號和雙引號的區別PHP
- Oracle中單引號與雙引號的區別分析Oracle
- UIModalPresentationStyle 各種型別的區別UI型別
- android onTouchEvent和setOnTouchListener中onTouch的區別Android
- Javascript中“==”與“===”的區別JavaScript
- js中“==”與"==="的區別JS
- 引數為*&與*的區別以及二維陣列傳遞時列數不對等的區別陣列
- Oracle - @和@@、&與&& 的區別Oracle
- mysql中!=和is not的區別MySql
- JavaScript中for in 和for of的區別JavaScript
- mysql中“ ‘ “和 “ ` “的區別MySql
- Js中for in 和for of的區別JS
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- oracle知識整理(1) union和union all的區別,left join和right join的區別(各種join的區別)Oracle
- PHP中對單引號和雙引號的區別(好文)PHP
- android中Invalidate和postInvalidate的區別Android
- Lua中ipairs()和pairs()的區別與使用AI
- Windows平臺的Apache各個版本區別WindowsApache
- 插入單引號在oracle和informix中的區別OracleORM
- PHP 中的 -> 和 :: 的區別PHP
- Java中(==)與equals的區別Java
- numpy中dot與*的區別
- Python中 ‘==‘ 與‘is‘的區別Python
- javaSE中的==和equals的聯絡與區別Java
- Python中 單引號,雙引號和三引號的區別Python
- java 中equals和==的區別Java
- SQL中where和on的區別SQL
- Python 中 is 和 == 的區別Python
- Python中is和==的區別Python