diff --git a/app/src/main/java/me/zhanghai/android/files/util/AppBarLayoutExtensions.kt b/app/src/main/java/me/zhanghai/android/files/util/AppBarLayoutExtensions.kt index 2931b8043..0ddedea42 100644 --- a/app/src/main/java/me/zhanghai/android/files/util/AppBarLayoutExtensions.kt +++ b/app/src/main/java/me/zhanghai/android/files/util/AppBarLayoutExtensions.kt @@ -12,7 +12,10 @@ fun AppBarLayout.updateLiftOnScrollOnPreDraw() { val consumed = IntArray(2) viewTreeObserver.addOnPreDrawListener { // Call AppBarLayout.Behavior.onNestedPreScroll() with dy == 0 to update lifted state. - val behavior = (layoutParams as CoordinatorLayout.LayoutParams).behavior!! + val behavior = (layoutParams as CoordinatorLayout.LayoutParams).behavior + // onPreDraw() somehow may be called before onMeasure() (where + // AppBarLayout.getBehavior() is called) during activity recreation. + ?: return@addOnPreDrawListener true val coordinatorLayout = parent as CoordinatorLayout behavior.onNestedPreScroll(coordinatorLayout, this, coordinatorLayout, 0, 0, consumed, 0) true