2016-10-06 14 views
0

アクティビティのタイトルバーとして機能する1つのRelativeLayoutにビューがあります。「ビューを画面から移動する」アニメーション

私はそれの下のリストをスクロールするとき、私はタイトルバーが画面の外にスクロール(または移動)するように非表示にしたいと思います。これは非常に簡単で明確です。私は2つのオプションを試しましたが、どちらも私のために働いていませんでした:

  1. デフォルトのレイアウトアニメーションを使用してください。親ビューグループにanimateLayoutChanges=trueを設定し、必要に応じてタイトルバーを削除します。私が得た効果は、タイトルのテキストを消して、バーが消えてしまったことです。これは私が欲しいものではありません、私はテキストの退色を望んでいないからです。
  2. 以下のコードを使用しますが、タイトルが移動した後にグレーの空白が表示されます。それは醜いです。

    Animator disappearingAnimation = ObjectAnimator.ofFloat(null, "translationY", 0, -(titleLin.getHeight())); 
    LayoutTransition transition = new LayoutTransition(); 
    transition.setAnimator(LayoutTransition.DISAPPEARING, disappearingAnimation); 
    transition.setDuration(LayoutTransition.DISAPPEARING, 600); 
    
    titleParent = (ViewGroup) titleLin.getParent(); 
    titleParent.setLayoutTransition(transition); 
    titleLin.setVisibility(View.GONE); 
    

この単純なアニメーション効果のための任意の解決策はありますか?

答えて

0

私は実際にそれが公式リファレンスで説明されて、答えを見つけました: https://developer.android.com/reference/android/animation/LayoutTransition.html

問題は、レイアウト移行のデフォルトの動作によって引き起こされる:最初のビューの除去をアニメーション化し、その後の充填をアニメーション残り。

アニメーションの遅延時間をゼロに設定するだけで問題は解決します。

+0

実際、これはまだ最良の選択ではありません。私が本当に望んでいるのは、ビューが画面外に移動したようにビューが消えてしまうことです。現在の効果は以下のビューがビューをカバーしたようなものです。現在のレイアウトxmlを変更しないと – tainy

関連する問題