2017-05-22 10 views
0

以下のコードスニペットを使用して、RecyclerView内のクリックを表示/非表示にしています。問題は、最初の表示/非表示のサイクルの後、ビューが一瞬表示されてから消えることです。これは、アクティビティを再開するまで続きます。可視性変更ビューのアニメーション

public void changeVisibility(final View view, boolean makeVisible) 
{ 
    if (makeVisible) 
    { 
     view.setVisibility(View.VISIBLE); 
     view.setAlpha(0.0f); 

     view.animate().alpha(1.0f); 
    } 
    else 
    { 
     view.animate() 
       .alpha(0.0f) 
       .setListener(new AnimatorListenerAdapter() 
       { 
        @Override 
        public void onAnimationEnd(Animator animation) 
        { 
         super.onAnimationEnd(animation); 
         view.setVisibility(View.GONE); 
        } 
       }); 

    } 
} 
+0

xmlで可視性を設定しようとしましたか? – DEADMC

+0

@DEADMCビューの可視性は、デフォルトでXMLではGONEです。 – Asim

+0

私はsetAlpha(0.0f)を設定する必要があると思います。最初にオブジェクトを消してから、それを見えるようにしてください。恐らくそれは*瞬間です。 – DEADMC

答えて

1

理由は、ビューの表示/非表示の最初のラウンドの後onAnimationEndを設定しているため。

不要になった場合は、listenerを削除する必要があります。これを追加:あなたのif (makeVisible)ブロックへ

view.setListener(null); 

が動作するはずです! ;)

関連する問題