Merge "Sharesheet - Fix scroll behavior moving past bounds" into qt-dev am: 658312b51c
am: 7e2a320d2b Change-Id: Iafd4468c4cd1a4989463bdc1a1fe2ff2ca455e1a
This commit is contained in:
commit
4e4cda3fd8
@ -73,6 +73,11 @@ public class ResolverDrawerLayout extends ViewGroup {
|
||||
*/
|
||||
private float mCollapseOffset;
|
||||
|
||||
/**
|
||||
* Track fractions of pixels from drag calculations. Without this, the view offsets get
|
||||
* out of sync due to frequently dropping fractions of a pixel from '(int) dy' casts.
|
||||
*/
|
||||
private float mDragRemainder = 0.0f;
|
||||
private int mCollapsibleHeight;
|
||||
private int mUncollapsibleHeight;
|
||||
private int mAlwaysShowHeight;
|
||||
@ -485,6 +490,16 @@ public class ResolverDrawerLayout extends ViewGroup {
|
||||
mCollapsibleHeight + mUncollapsibleHeight));
|
||||
if (newPos != mCollapseOffset) {
|
||||
dy = newPos - mCollapseOffset;
|
||||
|
||||
mDragRemainder += dy - (int) dy;
|
||||
if (mDragRemainder >= 1.0f) {
|
||||
mDragRemainder -= 1.0f;
|
||||
dy += 1.0f;
|
||||
} else if (mDragRemainder <= -1.0f) {
|
||||
mDragRemainder += 1.0f;
|
||||
dy -= 1.0f;
|
||||
}
|
||||
|
||||
final int childCount = getChildCount();
|
||||
for (int i = 0; i < childCount; i++) {
|
||||
final View child = getChildAt(i);
|
||||
|
Loading…
x
Reference in New Issue
Block a user