2016-07-06 112 views
-1

在点击查看orhu我animatinng ulayout从底部到顶部,并点击backgroundview我使它从顶部到底部的动画不可见。但问题是,这两个动画只发生在第一次我点击orbhu。然后没有动画发生和视图只是变得可见和不动画,除非我重新打开活动。为什么是这样的,我该如何解决这个问题?动画只发生在第一次

slide_down

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromYDelta="0%p" android:toYDelta="100%p" android:fillAfter="true" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:duration="500" /> 
</set> 

slide_up

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromYDelta="100%p" android:toYDelta="0%p" 
     android:fillAfter="true" 
     android:duration="500"/> 
</set> 

代码

slideDown = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_down); 
slideUp = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_up); 
orbhu.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.setAnimation(slideUp); 
     ulayout.setVisibility(View.VISIBLE); 
     backgroundview.setVisibility(View.VISIBLE); 
    } 
}); 
backgroundview.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.setAnimation(slideDown); 
     backgroundview.setVisibility(View.GONE); 
     ulayout.setVisibility(View.GONE); 
    } 
}); 
+0

尝试View.Invisible代替View.Gone。 –

+0

@ Hari_krish4同样的问题wid也是 –

+0

你有没有尝试过startAnimation而不是setAnimation –

回答

2

尝试下面的代码,而不是

slideDown = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_down); 
slideUp = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_up); 
orbhu.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.startAnimation(slideUp); 
     ulayout.setVisibility(View.VISIBLE); 
     backgroundview.setVisibility(View.VISIBLE); 
    } 
}); 
backgroundview.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.startAnimation(slideDown); 
     backgroundview.setVisibility(View.GONE); 
     ulayout.setVisibility(View.GONE); 
    } 
});