Prevent flicker

This commit is contained in:
M66B 2019-04-29 07:09:09 +02:00
parent f01b0710f3
commit 3f391a2ddd
1 changed files with 8 additions and 6 deletions

View File

@ -1398,13 +1398,12 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getPointerCount() == 2)
getParent().requestDisallowInterceptTouchEvent(true); // zoom
else if (event.getAction() == MotionEvent.ACTION_MOVE) {
if (event.getPointerCount() == 1) {
int range = computeVerticalScrollRange() - computeVerticalScrollExtent();
if (range > 0) // scroll
getParent().requestDisallowInterceptTouchEvent(true);
}
} else // zoom
getParent().requestDisallowInterceptTouchEvent(true);
return super.onTouchEvent(event);
}
@ -1419,8 +1418,11 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY) {
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if (clampedY)
properties.scrollBy(0, dy);
if (clampedY) {
int range = computeVerticalScrollRange() - computeVerticalScrollExtent();
if (range > 0) // This is to prevent flicker
properties.scrollBy(0, dy);
}
}
};