您的位置:首页 > 移动开发 > Android开发

android开发步步为营之75:ListView监听上滑下滑事件

2015-09-10 11:55 621 查看
两种方式可以监听。

一、通过OnScrollListener

lv_more_skin.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(lv_more_skin.getChildCount()>0)
{
boolean isScrollToUp = false;
View childAt = lv_more_skin.getChildAt(firstVisibleItem);
int[] location = new int[2];
childAt.getLocationOnScreen(location);
// Log.d("onScroll", "firstVisibleItem= "+firstVisibleItem+" , y="+location[1]);

if(firstVisibleItem!=mListViewFirstItem)
{
if(firstVisibleItem>mListViewFirstItem)
{
// Log.e("--->", "向上滑动");
isScrollToUp = true;
}else{
// Log.e("--->", "向下滑动");
isScrollToUp = false;
}
mListViewFirstItem = firstVisibleItem;
mScreenY = location[1];
}else{
if(mScreenY>location[1])
{
// Log.i("--->", "->向上滑动");
isScrollToUp = true;
}
else if(mScreenY<location[1])
{
//Log.i("--->", "->向下滑动");
isScrollToUp = false;
}
mScreenY = location[1];
}

if(isScrollToUp)
{
KeyboardUtils.hideKeyboard();
}

}
}
});


[/code]
二、通过OnTouchListener

lv_more_skin.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {

int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
KeyboardUtils.hideKeyboard();
break;
case MotionEvent.ACTION_MOVE:

break;
case MotionEvent.ACTION_UP:
KeyboardUtils.hideKeyboard();
break;
}

return false;
}
});


[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: