8

当用户开始编辑它时,我尝试为 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应该响应。我必须做什么?

在此处输入图像描述

在此处输入图像描述 我希望有人可以用正确的英文格式编辑我的问题。

4

1 回答 1

0

(有用的提示:有一个 Android 库用于在所有版本的平台上使用 Honeycomb (Android 3.0) 动画 API 回到 1.0!。它被称为NineOldAndroid。)

(有用的提示(Android 开发者,View):从 Android 3.0 开始,动画视图的首选方式是使用 android.animation 包 API。这些基于 Animator 的类会更改 View 对象的实际属性,例如 alpha 和 translationX。这种行为与 3.0 之前的基于动画的类的行为形成对比,后者仅对视图在显示器上的绘制方式进行动画处理。特别是,ViewPropertyAnimator 类使这些 View 属性的动画制作变得特别容易和高效。)

(请注意:以下解决方案适用于预蜂窝。)

与 iOS 相比,android 的动画有点难以理解。你需要知道这一点;

  • 只有 Android View 子类的幽灵是动画的。
  • 坟墓还在祖先坐标

所以解决方案可能是;

  • 阻止触摸事件查看

    animatingView.setEnabled(FALSE);

  • 动画视图

  • 删除动画视图

    animatingView.setVisibility(GONE); (animatingView.getParent()).removeView(animatingView);

  • 将视图的精确副本添加到新坐标。

于 2012-10-31T07:53:22.937 回答