簡體   English   中英

Android,setVisibility / animation問題

[英]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);

您可以嘗試使用onAnimationEndAnimation.AnimationListener

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM