读书人

ListView 上拉刷新

发布时间: 2012-12-07 11:18:41 作者: rapoo

ListView 下拉刷新

看了ListView的下拉刷新,原理是动态调整 Listview的第一行的paddingTop值,然后就能实现ListView的下拉刷新。

?

有下面几个ListView常用的方法


getFirstVisiblePosition() 取得界面上第一个显示的位置
getLastVisiblePosition() 取得界面上最后一个显示的位置
setSelection(int position)? 设置当前选中的位置,List会自动调至该位置

sdetVerticalScrollBarEnable(true)?? 设置scrollbar不能往下拉

getMeasuredHeight()??? 达到测量的长度,要在下面的measureView调用之后再调用,不然得到的是0
getBottom() ? 得得到view的最下面在屏幕中的位置
getPaddingTop()

?

还有两个方法也不错,测量view的高度

?

在OnTouchEvent 的Move事件中计算出当下移动的位置

?

private void refreshHead(MotionEvent e){int point = e.getHistorySize();for(int i = 0; i < point; i ++){int historicalY = (int) e.getHistoricalY(i);int topPadding = (int)((historicalY - mLastPositionY - mRefreshViewHeight) / 1.7);mRefreshView.setPadding(mRefreshView.getPaddingLeft(), topPadding, mRefreshView.getPaddingRight(), mRefreshView.getPaddingBottom());if(getFirstVisiblePosition() == 0){if(mRefreshView.getBottom() > 50){mListState = PULL_READ_REFRESH;displayRefreshView();} else {mListState = PULL_REFRESH;}}}}

?

读书人网 >移动开发

热点推荐