[英]Android, setVisibility/animation issue
當我按下按鈕時,我有一個linearLayout
消失,當我再次按下按鈕時它會返回。 但它做得如此之快,看起來並不好看。 我這樣做是通過:
disappearView.setVisibility(View.GONE);
我想添加一些動畫......如果我只是將visibity設置為隱藏布局所在的空間仍然存在。 所以我嘗試了這個:
if (disappearView.getVisibility() == View.VISIBLE){
Animation out = AnimationUtils.makeOutAnimation(this, true);
disappearView.startAnimation(out);
disappearView.setVisibility(View.INVISIBLE);
disappearView.setVisibility(View.GONE);
}
else {
Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in);
disappearView.startAnimation(in);
disappearView.setVisibility(View.VISIBLE);
}
這會使動畫太快而消失。 你根本看不到它。 設置invisible
后,我是否需要使用線程開始gone
...或延遲? 或者有更好的方法來做這一切嗎?
我不確定你要完成的是什么......你想讓LinearLayout在一點點時間內消失而不是立即消失嗎? 然后,一旦淡出,通過View.GONE從父母中移除?
如果是這樣,您可以使用AlphaAnimation進行淡出,然后附加一個像EvZ發布的監聽器:
AlphaAnimation fadeOutAnimation = new AlphaAnimation(1, 0); // start alpha, end alpha
fadeOutAnimation.setDuration(1000); // time for animation in milliseconds
fadeOutAnimation.setFillAfter(true); // make the transformation persist
fadeOutAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
linearLayout.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) { }
@Override
public void onAnimationStart(Animation animation) { }
});
linearLayout.setAnimation(fadeOutAnimation);
您可以嘗試使用onAnimationEnd
: Animation.AnimationListener
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.