소스 검색

Delay restoring AppBar elevation on Android 5.0 (fixes #4311)

arkon 4 년 전
부모
커밋
837d8f5f30
1개의 변경된 파일10개의 추가작업 그리고 0개의 파일을 삭제
  1. 10 0
      app/src/main/java/eu/kanade/tachiyomi/widget/ElevationAppBarLayout.kt

+ 10 - 0
app/src/main/java/eu/kanade/tachiyomi/widget/ElevationAppBarLayout.kt

@@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.widget
 import android.animation.ObjectAnimator
 import android.animation.StateListAnimator
 import android.content.Context
+import android.os.Build
 import android.util.AttributeSet
 import com.google.android.material.R
 import com.google.android.material.appbar.AppBarLayout
@@ -19,6 +20,15 @@ class ElevationAppBarLayout @JvmOverloads constructor(
     }
 
     fun enableElevation(liftOnScroll: Boolean) {
+        if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) {
+            // Delay to avoid crash
+            post { setElevation(liftOnScroll) }
+        } else {
+            setElevation(liftOnScroll)
+        }
+    }
+
+    private fun setElevation(liftOnScroll: Boolean) {
         stateListAnimator = origStateAnimator
         isLiftOnScroll = liftOnScroll
     }