java - 如何将视图从 Y 位置移动到另一个 Y
问题描述
我有一个按钮,我想制作一个向下的动画。我做到了,但功能保留在前一个位置(就像按钮移动但如果我点击它,它不起作用,但如果我点击它的前一个位置它会起作用)
Animation logbtn = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.logbtnanim);
button.startAnimation(logbtn);
动画代码是这样的。
PS Parent 是约束布局。
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true">
<translate
android:fromYDelta="0"
android:toYDelta="100"
android:duration="1000"/>
</set>
解决方案
首先,如果您只有一个动画,则不需要 AnimatorSet 标签。如果您想一起播放多个动画,则使用此选项。
其次,您使用的是不会为 Buttons 属性设置动画的TranslateAnimation,它只会移动屏幕上的像素,因此在动画之后,Android 仍然认为视图位于旧位置,这就是它仍然可以点击的原因。
我建议使用ViewPropertyAnimator在 Java 代码中执行此操作,例如:
button.animate().translationY(...f).duration(1000);
推荐阅读
- php - 绝对路径是 htaccess URL 重写问题的唯一解决方案吗?
- java - Java getter 设置方法
- loops - USB驱动器字母查找器
- passwords - 向新用户发送密码
- react-native - 在设备上使用 react-native-firebase 检测文本要求计费
- javascript - 我正在尝试使用 ajax 调用获取特定产品的价格。到目前为止,我已经尝试过了。但是选择产品后我没有得到价格
- c++ - OpenMP 任务看不到共享变量的变化
- javascript - 尝试访问 S3 时渲染的钩子比上一次渲染时更多
- php - 使用代码片段在主要和登台 WordPress 网站上重定向
- android - 每当Kotlin中的arraylist发生更改时如何更新textview