ptr:ptrAnimationStyle | 动画效果 提供了两个值 flip和rotate 默认为rotate |
ptr:ptrRefreshableViewBackground | 设置刷新View的背景颜色 |
ptr:ptrHeaderBackground | 设置头部View的背景颜色 |
ptr:ptrHeaderTextColor | 设置头部View文字的颜色 |
ptr:ptrHeaderSubTextColor | 设置头部view副标题文字的颜色 |
ptr:ptrMode |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
int
mLastFirstVisibleItem =
0
;
boolean
mIsScrollingUp;
@Override
public
void
onScrollStateChanged(AbsListView view,
int
scrollState)
{
if
(view.getId() == mListView.getId())
{
final
int
currentFirstVisibleItem = mListView.getFirstVisiblePosition();
if
(currentFirstVisibleItem > mLastFirstVisibleItem)
{
mIsUp =
true
;
}
else
if
(currentFirstVisibleItem < mLastFirstVisibleItem)
{
mIsUp =
false
;
}
mLastFirstVisibleItem = currentFirstVisibleItem;
}
}
|
1
2
3
4
5
6
7
8
9
10
11
|
// 解析json
private
void
parseJson(String result)
{
List<ListJson> localList = parseJsonArray(Utils.parseListJson(result,
"key"
));
if
(!mIsUp)
{
mDataList.clear();
}
mDataList.addAll(localList);
}
|
1
2
3
4
5
6
7
|
// 加载完毕处理
private
void
loadComplete()
{
mPullRefreshListView.onRefreshComplete();
mAdapter.notifyDataSetChanged();
mPage +=
1
;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/**
* *******************下拉刷新与上拉加载的监听处理************************
*/
// 刷新listview监听
@Override
public
void
onRefresh(PullToRefreshBase<ListView> refreshView)
{
// 获取刷新时间,设置刷新时间格式
String str = DateUtils.formatDateTime(getActivity(), System.currentTimeMillis(), DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_NO_NOON);
// 判断下拉还是上拉
if
(!mIsUp)
mPage =
0
;
// 设置刷新文本说明(刷新过程中)
if
(mIsUp)
{
mPullRefreshListView.getLoadingLayoutProxy().setRefreshingLabel(
"正在加载"
);
mPullRefreshListView.getLoadingLayoutProxy().setPullLabel(
"上拉加载更多"
);
mPullRefreshListView.getLoadingLayoutProxy().setReleaseLabel(
"释放开始加载"
);
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(
"最后加载时间:"
+ str);
}
else
{
mPullRefreshListView.getLoadingLayoutProxy().setRefreshingLabel(
"正在刷新"
);
mPullRefreshListView.getLoadingLayoutProxy().setPullLabel(
"下拉刷新"
);
mPullRefreshListView.getLoadingLayoutProxy().setReleaseLabel(
"释放开始刷新"
);
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(
"最后更新时间:"
+ str);
}
// 启动下载任务,加载数据
loadTask();
}
int
mLastFirstVisibleItem =
0
;
boolean
mIsScrollingUp;
@Override
public
void
onScrollStateChanged(AbsListView view,
int
scrollState)
{
if
(view.getId() == mListView.getId())
{
final
int
currentFirstVisibleItem = mListView.getFirstVisiblePosition();
if
(currentFirstVisibleItem > mLastFirstVisibleItem)
{
mIsUp =
true
;
}
else
if
(currentFirstVisibleItem < mLastFirstVisibleItem)
{
mIsUp =
false
;
}
mLastFirstVisibleItem = currentFirstVisibleItem;
}
}
@Override
public
void
onScroll(AbsListView view,
int
firstVisibleItem,
int
visibleItemCount,
int
totalItemCount)
{
// 设置刷新文本说明(展开刷新栏前)
if
(mIsUp)
{
mPullRefreshListView.getLoadingLayoutProxy().setRefreshingLabel(
"正在加载"
);
mPullRefreshListView.getLoadingLayoutProxy().setPullLabel(
"上拉加载更多"
);
mPullRefreshListView.getLoadingLayoutProxy().setReleaseLabel(
"释放开始加载"
);
}
else
{
mPullRefreshListView.getLoadingLayoutProxy().setRefreshingLabel(
"正在刷新"
);
mPullRefreshListView.getLoadingLayoutProxy().setPullLabel(
"下拉刷新"
);
mPullRefreshListView.getLoadingLayoutProxy().setReleaseLabel(
"释放开始刷新"
);
}
}
@Override
public
void
onLastItemVisible()
{
mIsUp =
true
;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@Override
protected
void
onRefreshing(
final
boolean
doScroll) {
/**
* If we're not showing the Refreshing view, or the list is empty, the
* the header/footer views won't show so we use the normal method.
*/
/*ListAdapter adapter = mRefreshableView.getAdapter();
if (!mListViewExtrasEnabled || !getShowViewWhileRefreshing() || null == adapter || adapter.isEmpty()) {
super.onRefreshing(doScroll);
return;
}*/
super
.onRefreshing(
false
);
}
}
|
1
2
3
4
5
6
7
8
9
|
mPullRefreshListView = (PullToRefreshListView) findViewById(R.id.refresh_listview);
mListView = ((ListView)
this
.mPullRefreshListView.getRefreshableView());
// 监听listview
mPullRefreshListView.setOnRefreshListener(
this
);
// mPullRefreshListView.setOnRefreshListener(this);
// mPullRefreshListView.setOnLastItemVisibleListener(this);
// mPullRefreshListView.setOnScrollListener(this);
mPullRefreshListView.setOnItemClickListener(
this
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
@Override
public
void
onPullDownToRefresh(PullToRefreshBase<ListView> refreshView)
{
// 获取刷新时间
String str = DateUtils.formatDateTime(
this
, System.currentTimeMillis(), DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_NO_NOON);
// 设置刷新文本说明(刷新过程中)
mPullRefreshListView.getLoadingLayoutProxy().setRefreshingLabel(
"正在刷新"
);
mPullRefreshListView.getLoadingLayoutProxy().setPullLabel(
"下拉刷新"
);
mPullRefreshListView.getLoadingLayoutProxy().setReleaseLabel(
"释放开始刷新"
);
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(
"最后更新时间:"
+ str);
onPullDownListView();
}
public
void
onPullDownListView()
{
// TODO Auto-generated method stub
}
@Override
public
void
onPullUpToRefresh(PullToRefreshBase<ListView> refreshView)
{
// 获取刷新时间
String str = DateUtils.formatDateTime(
this
, System.currentTimeMillis(), DateUtils.FORMAT_NUMERIC_DATE | DateUtils.FORMAT_NO_NOON);
// 设置刷新文本说明(刷新过程中)
mPullRefreshListView.getLoadingLayoutProxy().setRefreshingLabel(
"正在加载"
);
mPullRefreshListView.getLoadingLayoutProxy().setPullLabel(
"上拉加载更多"
);
mPullRefreshListView.getLoadingLayoutProxy().setReleaseLabel(
"释放开始加载"
);
refreshView.getLoadingLayoutProxy().setLastUpdatedLabel(
"最后加载时间:"
+ str);
onPullUpListView();
}
public
void
onPullUpListView()
{
// TODO Auto-generated method stub
}
|