我试图在用户开始编辑时为编辑文本设置动画。 我试过下面的代码,
EditText txtPassword = (EditText) findViewById(R.id.editText1);
Animation anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.anim);
anim.setInterpolator((new AccelerateDecelerateInterpolator()));
anim.setFillAfter(true);
txtPassword.startAnimation(anim);
anim.xml
````````
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="-50%p" android:duration="100"/>
</set>
动画效果很好。 但 edittext 在动画后停止了用户交互。 如果用户触摸屏幕编辑文本的先前位置,则会出现键盘。 但实际上在新位置的 edittext 应该响应。我必须做什么?
我希望有人能以正确的英文格式编辑我的问题。
最佳答案
(有用提示:有一个 Android 库,用于在所有版本的平台上使用 Honeycomb (Android 3.0) 动画 API,回到 1.0!它称为 NineOldAndroid。)
(有用提示(Android 开发人员,View):从 Android 3.0 开始,动画 View 的首选方法是使用 android.animation 包 API。这些基于 Animator 的类会更改 View 对象的实际属性,例如作为 alpha 和 translationX。此行为与 pre-3.0 Animation-based classes 的行为形成对比,后者仅对 View 在显示器上的绘制方式进行动画处理。特别是,ViewPropertyAnimator 类使这些 View 属性的动画处理变得特别简单和高效。 )
(注意:以下解决方案适用于 hive 前。)
与 iOS 相比,android 的动画有点难以理解。你需要知道这一点;
- 只有 Android View 子类的幽灵是动画的。
- 而且坟墓还在祖先坐标处
所以解决方案可能是;
阻止触摸事件查看
animatingView.setEnabled(FALSE);
动画 View
移除动画 View
animatingView.setVisibility(GONE); (animatingView.getParent()).removeView(animatingView);
将 View 的精确副本添加到新坐标。
关于Android:动画编辑文本的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13153199/