[英]How to work with Android ListView setOnScrollListener?
我正在嘗試在列表末尾滾動時增加整數值。 如果我有5個數字並在列表視圖中最后一項的末尾滾動,那我必須檢查並向上滾動5次直到滿足條件。
這是我的代碼
listView.setOnScrollListener(new AbsListView.OnScrollListener()
{
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount)
{
lastInScreen = firstVisibleItem + visibleItemCount;
//Log.e("","lastInScreen="+lastInScreen);
if(lastInScreen == totalItemCount)
{
Toast.makeText(getApplicationContext(), "Your Last Item." + lastInScreen , Toast.LENGTH_SHORT).show();
if(num < 5)
{
num += 1;
Log.e("","num = "+num );
}
if(num == 5)
{
Log.e(""," Stop Scrolling!!! ");
}
}
}
});
但是問題是,當我第一次滾動到listview項的末尾時, num
會像for
循環那樣增加到5,而我不想這樣做。 我想如果我滾動第一個num
遞增1,如果再次滾動, num
遞增2,因為最大可達5。
嘗試保存“ firstVisibleitem”,如果相同,則不要求和。
int X=-1;
listView.setOnScrollListener(new AbsListView.OnScrollListener()
{
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount)
{
lastInScreen = firstVisibleItem + visibleItemCount;
//Compare X with the firstVisibleItem (if X is -1, it always go for false, if X is not -1 X will be the last first visible item
if(X!=firstVisibleItem)
{
if(lastInScreen == totalItemCount)
{
Toast.makeText(getApplicationContext(), "Your Last Item." + lastInScreen , Toast.LENGTH_SHORT).show();
if(num < 5)
{
num += 1;
Log.e("","num = "+num );
}
if(num == 5)
{
Log.e(""," Stop Scrolling!!! ");
}
}
}
//Set the value of this firstVisibleItem to X
X=firstVisibleItem;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.