NestedScrollView
(또는 RecyclerView
)이 아직 끝나지 않은 상태에서 AppBar
이 스크롤/플 런닝 될 때만 발생합니다.
해결 방법 : AppBar의 기본 Behavior
을 확장하고에 대한 호출을 차단 AppBar.Behavior의 onNestedPreScroll()
및 NestedScroll 아직 중지되지 않은 상태 AppBar
을 터치 onNestedScroll()
.
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
...
app:layout_behavior="com.mypackage.NoBounceBehavior"/>
사용자 정의 행동의 전체 코드에 대한 참조는 여기에서 찾을 수 있습니다 : https://gist.github.com/ampatron/9d56ea401094f67196f407f82f14551a
@Override
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dx, int dy, int[] consumed, int type) {
if (type == TYPE_FLING) {
isFlinging = true;
}
if (!shouldBlockNestedScroll) {
super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed, type);
}
}
@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) {
if (!shouldBlockNestedScroll) {
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, type);
}
}
다음 레이아웃에 사용