瀏覽代碼

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
     }