2011-02-12 79 views
0

我的布局由一个EditText和WebView中的一个子类:Android:帮助动画视图?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

<EditText android:id="@+id/addressbar" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@android:drawable/editbox_background" 
       /> 

<com.android.ibrowser.myWebView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/browser" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

/> 

</LinearLayout> 

当用户向下滚动的WebView我想的EditText向上移动并消失,所以我重写onScrollChanged方法的WebView:

protected void onScrollChanged (int l, int t, int oldl, int oldt){ 

    super.onScrollChanged(l, t, oldl, oldt); 


    if (addressBar.getBottom() > 0){ 

     AnimationSet animation = new AnimationSet(true); 
     TranslateAnimation translateAnimation = new TranslateAnimation(0, 0 
       , -t + oldt, -t + oldt); 
     translateAnimation.setDuration(100); 
     animation.addAnimation(translateAnimation); 
     animation.setFillAfter(true); 

     animation.setAnimationListener(new AnimationListener() { 

      @Override 
      public void onAnimationEnd(Animation arg0) { 
       addressBar.clearAnimation(); 
       // Change view to state B by modifying its layout params and scroll 
      } 



      @Override 
      public void onAnimationRepeat(Animation animation) { 
       // TODO Auto-generated method stub 

      } 

      @Override 
      public void onAnimationStart(Animation animation) { 
       // TODO Auto-generated method stub 

      } 
     }); 
     addressBar.startAnimation(animation); 
    } 

} 

但达到的效果是EditText移动到顶端,但立即回到原来的位置。你怎么看?

回答

0

尝试添加translateAnimation.setFillAfter(true)

+0

这并没有改变任何东西...... – Alex1987 2011-02-12 19:07:36

2

你要拨打:

translateAnimation.setFillEnabled(true); 

之前

translateAnimation.setFillAfter(true); 

和它的作品。