当RV alpha小于1.0时,RecyclerView项的阴影被裁剪

时间:2019-04-23 16:15:39

标签: android kotlin shadow alpha elevation

我正在研究一个RecyclerView,它以水平方向显示项目列表。 每个项目都是带有elevation=8dp的CardView。高程为项目提供了一个阴影,该阴影将被RecyclerView剪切。为了使其正常工作,我添加了android:clipChildren="false"android:clipToPadding="false"以便不再修剪阴影。 一切正常,直到RV的alpha值更改为止。

我用来隐藏RV的动画:

view.apply {
            animate().alpha(0f)
                    .setDuration(300)
                    .withEndAction { view.visibility = outVisibility }
                    .start()
        }

...和显示它的那个:

view.apply {
            if (visibility != View.VISIBLE) alpha = 0f
            animate().alpha(1f)
                    .setDuration(300)
                    .withStartAction { view.visibility = View.VISIBLE }
                    .start()
        }

问题

只要RV的alpha低于1.0,就会修剪RV内部的项目(阴影)。 alpha到达1.0时,阴影突然停止被修剪,一切看起来都很好了。

我能做些什么来解决它吗?

如果我在XML中将alpha设置为低于1.0的固定值,则会发生相同的问题(在这种情况下根本不设置动画)。 当我尝试为RV中的项目alpha设置动画时,也会发生相同的问题。

何时RV alpha = 1.0 https://www.dropbox.com/s/g1cun1jqv0op0qw/Screenshot_20190423-180952__01.jpg?dl=0

何时RV alpha = 0.9 https://www.dropbox.com/s/s06f9f3orci135m/Screenshot_20190423-180819__01.jpg?dl=0

更新1 当我尝试为alpha RV父级而不是RV本身设置动画时,该问题消失了。但是,为了将其alpha动画化,不得不将RV包裹在额外的父对象中似乎有点不明智。

0 个答案:

没有答案