一个分页小问题的处理方法

在做讲堂项目的时候,发现分页只能加载到第二页,而第三页以后则没有效果,所以debug了下

  • 给onBottomBegin ,onBottom,onBottomComplete方法断点
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
/**
* on bottom begin, adjust view status
*/
private void onBottomBegin() {
if (isOnBottomStyle) {
if (isShowFooterProgressBar) {
footerProgressBar.setVisibility(View.GONE);
}
footerButton.setText(footerLoadingText);
footerButton.setEnabled(false);
}
}
/**
* on bottom loading, you can call it by manual, but you should manual call
* onBottomComplete at the same time.
*/
public void onBottom() {
if (isOnBottomStyle && !isOnBottomLoading) {
isOnBottomLoading = true;
onBottomBegin();
footerButton.performClick();
}
}
/**
* on bottom load complete, restore view status
*/
public void onBottomComplete() {
if (isOnBottomStyle) {
if (isShowFooterProgressBar) {
footerProgressBar.setVisibility(View.GONE);
}
footerButton.setEnabled(true);
if (!hasMore) {
footerButton.setText(footerNoMoreText);
} else {
footerButton.setText(footerDefaultText);
}
isOnBottomLoading = false;
}
}

在分页加载到第二页的时候,onBottom方法中的isOnBottomStyletrue,isOnBottomLoadingfalse,但当分页加载到第三页的时候,isOnBottomLoading则为true,而isOnBottomLoading的赋值则是在onBottomComplete中进行的,所以只需要在每次load数据后加上onBottomComplete方法就能正常加载了.