50

私の質問のタイトルのように、方法は何であり、何setFillBefore()setFillAfter()すべきですか?

setFillAfter()アニメーションが完了した後、ビューを永続的に変更することを望んでいましたが、これは正しくありませんか?

4

1 に答える 1

127

答えはイエスです、彼らはうまくいきます、おそらくあなたが期待するものではないでしょう-例えば、の説明はsetFillAfter(boolean fillAfter)言います

fillAfterがtrueの場合、このアニメーションが実行した変換は、終了しても持続します。

trueに設定すると、これが行われます。

ただし、Androidのアニメーションは、意図せずにビュー自体をアニメーション化するのではなく、ビューのビットマップ表現をアニメーション化します。

おそらくあなたが抱えている問題は、アニメーションの後、ビューがアニメーション前の状態に戻ることです。そのような状況では、ビューのプロパティを次のように設定する必要があるため、それsetFillAftersetFillBefore支援することはできません。アニメーション表現と同じで(これらは別個のものです)、アニメーションプロパティsetFillAftersetFillBeforeのみ適用され、ビュープロパティには適用されません。

それらが存在する理由は、アニメーションを連鎖させるためです。翻訳アニメーションの後にフェードアウトが続くとします。移動アニメーションを設定しなかった場合setFillAfter(true)、ビューは移動し、元の位置に戻ってからフェードアウトします。移動アニメーションをsetFillAfter(true)設定すると、ビューが移動し、現在の場所でフェードアウトします。

于 2011-05-04T19:41:05.640 に答える