android ux tricks: nested scrolling without nested scrolling
Post on 09-Feb-2017
115 Views
Preview:
TRANSCRIPT
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
→ →
Android UX Tricks: Nested Scrolling without Nested Scrolling
11 JAN 2017 PRESENTED BY BRENDAN WEINSTEIN ( VSCO )
BRENDANW@VSCO.CO
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
Camera Preview
Header that hides when you scroll fast down or up
RecyclerView w/ GridLayoutManager
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
AppBarLayout & CoordinatorLayout
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
NestedScrollingParent
NestedScrollingChild
→ boolean onStartNestedScroll(child, target, axes) → void onNestedScrollAccepted(child, target, axes) → void onStopNestedScroll(target) → void onNestedScroll(target, dxConsumed, dyConsumed, dxConsumed, dyUnconsumed) → void onNestedPreScroll(target, dx, dy, consumed) → boolean onNestedFling(target, velocityX, velocityY, consumed) → boolean onNestedPreFling(target, velocityX, velocityY)
→ void setNestedScrollingEnabled(enabled) → boolean isNestedScrollingEnabled() → startNestedScroll(axes) → stopNestedScroll() → hasNestedScrollingParent() → dispatchNestedScroll(dxConsumed, dyConsumed, dxUnconsumed,
dyUnconsumed, offsetInWindow) → dispatchNestedPreScroll(dx, dy, consumed, offsetInWindow) → dispatchNestedFling(velocityX, velocityY, consumed) → dispatchBestedPreFling(velocityX, velocityY)
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
ParentScrollView RedView ChildScrollView
BlueView WhiteView BlueView WhiteView
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
How to pass a fling from one view to another?
→Need to find velocity of the fling at the point at which there is no more of the child to be scrolled, record that as the initial velocity for the a VelocityTracker in the parent and initiate a new fling.
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
Did I really search hard enough for alternative solutions? What about open source?
→me.henrytao.smoothappbarlayoutdemo →ksoichiro/Android-ObservableScrollView
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
Tracking the scrollY of a RecyclerView is error-prone
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
How do these libraries actually work under the hood?
Why are there not two Scrollable elements?
Incredibly relevant quote from the great Nolan Brothers Film The Prestige:
“Now you're looking for the secret. But you won't find it because of course, you're not really looking. You don't really want to work it out. You
want to be fooled.”
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
Camera Preview
Header that hides when you scroll fast down or up
RecyclerView w/ GridLayoutManager
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
VS
CO
→
C
ON
FID
EN
TIA
L →
D
O N
OT
DIS
TR
IBU
TE
→ →
11 JAN 2016 BRENDAN WEINSTEIN (VSCO)
BRENDANW@VSCO.CO
top related