Android:动画编辑文本的问题?

标签 android animation android-edittext

我试图在用户开始编辑时为编辑文本设置动画。 我试过下面的代码,

 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 应该响应。我必须做什么?

enter image description here

enter image description here 我希望有人能以正确的英文格式编辑我的问题。

最佳答案

(有用提示:有一个 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/

相关文章:

animation - 如何在 Flutter 中的 Hero 过渡期间使用未运行的动画/动画?

android - 使用自定义监听器扩充类时出错

jquery - 在步骤中停止 jquery 动画,然后设置动画属性

未找到 Android Studio Gradle DSL 方法 : 'compile()'

android - 调用 MobileAds.initialize() 的正确方法是什么?

android - Google map 未在 Firebase 测试实验室中显示

animation - Flutter - 动画文本淡入淡出过渡

android - EditText 填充属性不适用于 API 21 和 22

android - 在 ListView 中保留一个 EditText 值

android - 如何从 build.gradle 中的 json 配置文件创建 ProductFlavors?