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

时间:2012-10-31 07:31:29

标签: android animation android-edittext

当用户开始编辑时,我尝试为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在动画后停止了userinteraction。 如果用户触摸屏幕编辑文本的先前位置,则会出现键盘。 但实际上在新位置的edittext应该响应。我该怎么办?

enter image description here

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

1 个答案:

答案 0 :(得分:0)

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

(USEFUL HINT(Android Developers,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);

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