2

アクティビティ間の移行中にアニメーションを表示したくない状況にあります。現在、次のことを行っています。

startActivity( intent );
getActivity().overridePendingTransition( 0, 0 );

正常に動作します。2 番目のアクティビティでは、(良くも悪くも) LayoutTransitions をアニメーション化します。具体的にaddView()は、ルート ビューとandroid:animateLayoutChanges="true"XML を組み合わせて呼び出します。

現在、 2 番目のアクティビティaddView()で呼び出されてonResume()おり、LayoutTransition アニメーションは表示されません (追加されたビューを所定の位置にポップするだけです)。overridePendingTransitions(int, int)2番目のアクティビティで指定されたライフサイクルイベントが発生するまで、またはstartActivity()(したがってオーバーライドも)のいずれかが「有効」であると推測しています。しかし、私はこの情報を見つけることができません。の最後までだと思いonResume()ますか?

後でビューを削除すると、たとえばユーザーが戻るボタンを押したときに、LayoutTransition アニメーションが正常にトリガーされます。しかし、これはアクティビティのライフサイクルとは無関係です。

私の質問は、どの時点overridePendingTransition( 0, 0 )でアニメーションのコントロールを解放するのですか?

4

1 に答える 1

0

のリリースはoverridePendingTransitionライフサイクル イベントに関連付けられていません。

overridePendingTransitionアニメーションの持続時間が完了すると、制御が解放されます。
つまり、 300 ms(デフォルトの期間) またはuser specified duration(XML で設定するか、setDuration() を使用して)

アクティビティ間の遷移中にアニメーションが表示されないようにするには、FLAG_ACTIVITY_NO_ANIMATIONを使用します

それ以外のoverridePendingTransition

インテント.addFlags(インテント.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(インテント);

于 2013-11-19T06:10:02.050 に答える