EditText在animation之后捕捉并活着回滚…?

我正面临一个相当有趣,但恼人的错误,在我的线性布局,我隐藏了另一个线性布局,使用负值的保证金,当用户从列表中select一种types时,我使用转换animation将布局带到前面,错误是布局到达前面有一个编辑文本成为死亡,当我滚动(我的主要布局是由滚动视图包围)它来活着,当我停止滚动它变得死了再次…我真的不能判断为什么会发生这样的家伙plz的帮助。 …

我也粘贴下面的video链接显示这个令人讨厌的行为,我的应用程序

http://www.dailymotion.com/video/xlskk8_android-app-edit-text-error_tech

我滚动视图内的布局xml是

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_marginRight="10dip" android:layout_marginTop="-110dip" android:layout_marginBottom="5dip" android:id="@+id/notes_editor" android:orientation="vertical" > <EditText android:id="@+id/enter_note" android:layout_height="wrap_content" android:layout_width="fill_parent" android:maxLines="2" android:lines="2"> </EditText> <Button android:id="@+id/save_note" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Save" /> </LinearLayout> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="-10dip" android:id="@+id/notes_list" android:orientation="vertical" > </LinearLayout> </LinearLayout> 

button下方的空白线性布局用于dynamic添加子视图,其他所有事情正在正确执行其function,只有显示此exception行为的编辑文本。

下面是用于animation的代码

  public void animateEditor() { slider = new TranslateAnimation(0, 0, 0,180 ); slider.setDuration(1250); slider.setFillAfter(true); notes_list.startAnimation(slider); notes_editor.startAnimation(slider); } 

Solutions Collecting From Web of "EditText在animation之后捕捉并活着回滚…?"

这里的问题是应用slider.setFillAfter(true); 该代码animation视图的形象,但不是实际的意见,这就是为什么当我看到他们后滑动animation,他们(EditText和保存button)卡住,或者你可以说死了,不听他们的事件,因为实际的意见是在布局在前面,这只是他们的形象

我发现这个问题的解决办法是应用以下代码:

 slider.setFillAfter(false); slider.setFillBefore(false); // OR you can directly write slider.setFillEnabled(false); 

然后通过设置animation侦听器并使用以下方法来显示新地点的实际视图:

 public void onAnimationEnd(Animation a) 

使用上述方法将视图放置到animation结尾的新位置。 而这里还有另一个眨眼的问题,这是由于androidanimation监听器方法中的问题所致,它是在实际animation结束之前被调用并产生闪烁效果,一个棘手的解决方法是在第一行放置以下代码行public void onAnimationEnd(Animation a)方法。

 // in my case animation applied to notes_editor so the code will be notes_editor.clearAnimation();