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()));
}
});
相關文章
- subprocess中命令為引數序列和字串的區別字串
- Python 函式中引數前面一個和兩個星號(**)的區別Python函式
- my.cnf中[mysql]與[mysqld]下引數的區別MySql
- js中!和!!的區別與用法JS
- Oracle中單引號和雙引號的區別Oracle
- Android 開發中 getContext 和 getActivity的區別AndroidContext
- Android——FragmentPagerAdapter與FragmentStatePagerAdapter區別AndroidFragmentAPT
- UIModalPresentationStyle 各種型別的區別UI型別
- oracle知識整理(1) union和union all的區別,left join和right join的區別(各種join的區別)Oracle
- 引數為*&與*的區別以及二維陣列傳遞時列數不對等的區別陣列
- Javascript中“==”與“===”的區別JavaScript
- Python中 ‘==‘ 與‘is‘的區別Python
- Android核心和Linux核心的區別AndroidLinux
- JavaScript中for in 和for of的區別JavaScript
- Js中for in 和for of的區別JS
- mysql中!=和is not的區別MySql
- Python中is和==的區別Python
- JavaScript中==和===的區別JavaScript
- Linux中“>”和“>>”的區別Linux
- Python 中 is 和 == 的區別Python
- mysql中“ ‘ “和 “ ` “的區別MySql
- Android關於buildToolVersion與CompileSdkVersion的區別AndroidUICompile
- PHP 中的 -> 和 :: 的區別PHP
- Android主專案和Module中R類的區別Android
- 自增長列和序列的區別(identity與sequence的區別)IDE
- Java中(==)與equals的區別Java
- SAP Spartacus 伺服器端渲染 timeout 和 forcedSsrTimeout 兩個引數的區別伺服器
- javaSE中的==和equals的聯絡與區別Java
- OB有問必答 | 引數和變數的區別是什麼?變數
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- ??與?:的區別
- mongod命令的一些引數以及引數--pidfilepath與mongod.lock區別Go
- shell中定義變數用雙引號和單引號以及不用引號的區別變數
- java 中equals和==的區別Java
- SQL中where和on的區別SQL
- deferred中done和then的區別
- ||和??的區別
- /*和/**的區別