Skip to content

Commit 8d47648

Browse files
committed
fix 聊天闪屏
1 parent 5f496ab commit 8d47648

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

android/messagelist/src/main/java/cn/jiguang/imui/messages/ScrollMoreListener.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import android.support.v7.widget.LinearLayoutManager;
88
import android.support.v7.widget.RecyclerView;
99
import android.support.v7.widget.StaggeredGridLayoutManager;
10+
import android.util.Log;
1011

1112
public class ScrollMoreListener extends RecyclerView.OnScrollListener {
1213

@@ -41,7 +42,7 @@ private int getLastVisibleItem(int[] lastVisibleItemPositions) {
4142

4243
@Override
4344
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
44-
//setStackFromEnd();
45+
setStackFromEnd();
4546
if (mListener != null) {
4647
int lastVisibleItemPosition = 0;
4748
int firstVisibleItemPosition = 0;
@@ -92,26 +93,36 @@ public void handleMessage(Message msg) {
9293
} catch (Exception e) {
9394
e.printStackTrace();
9495
}
95-
} else if(msg.what == 2){
96+
} else if (msg.what == 2) {
9697
try {
9798
ll.setStackFromEnd(true);
9899
} catch (Exception e) {
99100
e.printStackTrace();
100101
}
101102
}
103+
lastTime = System.currentTimeMillis();
102104
}
103105
};
104106
LinearLayoutManager ll;
107+
long lastTime = 0L;
108+
105109
void setStackFromEnd() {
110+
long current = System.currentTimeMillis();
111+
112+
Log.w("setStackFromEnd", "setStackFromEnd:" + (current - lastTime));
113+
if (current - lastTime < 500L) {
114+
return;
115+
}
116+
106117
if (mLayoutManager instanceof LinearLayoutManager) {
107118
ll = (LinearLayoutManager) mLayoutManager;
108119
if (ll.getStackFromEnd()) {
109120
if (ll.getChildCount() < mLayoutManager.getItemCount()) {
110-
handler.sendEmptyMessageDelayed(1,150);
121+
handler.sendEmptyMessageDelayed(1, 150);
111122
}
112123
} else {
113124
if (ll.getChildCount() >= mLayoutManager.getItemCount()) {
114-
handler.sendEmptyMessageDelayed(2,150);
125+
handler.sendEmptyMessageDelayed(2, 150);
115126
}
116127
}
117128
}

0 commit comments

Comments
 (0)