android - AppBarLayout 高度更改在 appCompat v24.0.0 上延迟

标签 android android-elevation android-appcompat

Appcompat v24.0.0 中,导致在 Activity 可见后将阴影/高程 渲染到 AppbarLayout。在 AppbarLayout 的阴影绘制中很容易看到滞后。

而且在以前的 Appcompat 库版本中没有这种滞后。

同时使用 Appcompat v24.0.0Appcompat v23.4.0 进行测试,阴影绘制在新版本中清晰可见。

最佳答案

这是 Appcompat v24.0.0 中的错误。

References: https://code.google.com/p/android/issues/detail?id=213895

为了最小化elevation绘制的延迟,在你自己的StateListAnimator中将持续时间设置为1ms并应用到 AppbarLayout.

res 目录下的 animator-v21 文件夹中的

appbar_always_elevated.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <objectAnimator android:propertyName="elevation"
                        android:valueTo="8dp"
                        android:valueType="floatType"
                        android:duration="1"/>
    </item>

</selector>

在 AppbarLayout 中:

<android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:fitsSystemWindows="true"
        android:stateListAnimator="@animator/appbar_always_elevated"
        android:theme="@style/AppTheme.AppBarOverlay">

</android.support.design.widget.AppBarLayout>

关于android - AppBarLayout 高度更改在 appCompat v24.0.0 上延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37960282/

相关文章:

android - Material TabLayout 标高不起作用

android - 在 Android 中的操作栏标题上设置 OnClick 监听器

android - 全屏 Bottom Sheet ,顶部有关闭 (X) 按钮

android - 使用自定义可绘制拇指时如何保持切换拇指阴影/高程?

android - 如何将 imageView 放在 cardview 前面?当两者都是相对布局的 child 时

Android App + Library 与 appcompat 版本冲突

android - 使用 AppCompat v22.1.0 时如何在 super.onCreate 之前设置 ContentView?

android - 如何使用 Coil 将图像文件加载到 Jetpack Compose Image

android - 如何最小化按钮中文本和图像之间的空间?

android - 布局的圆形矩形边框