Android - 移除按下动画的阴影
Android - removing shadow on pressed animation
我有一个 FAB,我想在两个动作之一发生时用翻转动画。第一个是屏幕内容的变化,第二个是按下 FAB 以确认操作。
我正在使用支持库 v22.2.1 中的 FAB
我正在使用这个对象动画师来做
ObjectAnimator animation = ObjectAnimator.ofFloat(myFab, "rotationY", 0.0f, 360f);
animation.setDuration(400);
animation.setInterpolator(new AccelerateDecelerateInterpolator());
animation.start();
动画按预期工作,视图翻转并且在 per-lollipop 设备上看起来很完美。
在 Lollipop 设备上它也会翻转阴影,看起来 非常糟糕 并且会分散注意力。
我将 FAB 设置为 6 海拔
<android.support.design.widget.FloatingActionButton
android:id="@+id/my_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_margin="@dimen/fab_compat_margin"
app:borderWidth="0dp"
app:elevation="6dp"/>
为了解决这个问题,我在动画开始前将高度设置为 0,然后在 onAnimationEnd 中将其设置回 6。
这在触发动画的动作不是按下的 fab 时有效。
当我按下FAB时,它仍然显示阴影,而且是更大的阴影。看起来按下状态阴影与高程阴影是分开的。
我尝试设置一个触摸侦听器并删除那里的阴影,但是由于触摸,阴影已经存在了。
关于如何绕过触摸阴影动画有什么想法吗?
我想通了。
如果我将 StateListAnimatior 设置为 null,则按下的阴影消失并且动画开始工作。
myFab.setStateListAnimator(空);
虽然这个阴影与高程阴影是分开的,所以我仍然需要在开始动画之前将它们设置为 0。
现在可以在使用Material FAB
时直接设置translationZ
:
app:pressedTranslationZ="0dp"
app:hoveredFocusedTranslationZ="0dp"
我有一个 FAB,我想在两个动作之一发生时用翻转动画。第一个是屏幕内容的变化,第二个是按下 FAB 以确认操作。
我正在使用支持库 v22.2.1 中的 FAB
我正在使用这个对象动画师来做
ObjectAnimator animation = ObjectAnimator.ofFloat(myFab, "rotationY", 0.0f, 360f);
animation.setDuration(400);
animation.setInterpolator(new AccelerateDecelerateInterpolator());
animation.start();
动画按预期工作,视图翻转并且在 per-lollipop 设备上看起来很完美。
在 Lollipop 设备上它也会翻转阴影,看起来 非常糟糕 并且会分散注意力。
我将 FAB 设置为 6 海拔
<android.support.design.widget.FloatingActionButton
android:id="@+id/my_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_margin="@dimen/fab_compat_margin"
app:borderWidth="0dp"
app:elevation="6dp"/>
为了解决这个问题,我在动画开始前将高度设置为 0,然后在 onAnimationEnd 中将其设置回 6。
这在触发动画的动作不是按下的 fab 时有效。
当我按下FAB时,它仍然显示阴影,而且是更大的阴影。看起来按下状态阴影与高程阴影是分开的。
我尝试设置一个触摸侦听器并删除那里的阴影,但是由于触摸,阴影已经存在了。
关于如何绕过触摸阴影动画有什么想法吗?
我想通了。
如果我将 StateListAnimatior 设置为 null,则按下的阴影消失并且动画开始工作。
myFab.setStateListAnimator(空);
虽然这个阴影与高程阴影是分开的,所以我仍然需要在开始动画之前将它们设置为 0。
现在可以在使用Material FAB
时直接设置translationZ
:
app:pressedTranslationZ="0dp"
app:hoveredFocusedTranslationZ="0dp"