5

Android プロジェクト用のカスタムLayoutAnimationControllerを作成しようとしたときに問題が発生しました。それは方法を持っています

public final Animation getAnimationForView(View v)

カスタム LayoutAnimationController では、各ビューが「一意の」アニメーションを取得する必要があるため、このメソッドをオーバーライドする必要があります。リフレクションまたは同様の手法を使用して public final メソッドをオーバーライドすることは可能ですか、または別のアイデアがありますか?

リフレクションまたはその他の手段を介してJavaの最終メソッドをオーバーライドする際に、同様のことが議論されていたことを私は知っていますか? しかし、そこに出てきた「解決策」は、ユーザーの問題にかなり固有のものであり、最終的なメソッドをオーバーライドするという質問に完全には答えていませんでした。

4

2 に答える 2

0

LayoutAnimationControllerこのように使用することを意図していないようです。

このクラスは複数のビューで単一のアニメーション (遅延が異なる) を使用するために作成されているため、必要な機能でオーバーライドできる場合getAnimationForView(View v)、ほとんどのメソッド/コンストラクターはLayoutAnimationController意味がありません。

ソースを調べて、この情報に基づいて独自のアニメーション コントローラーを作成する方がよいかもしれません。

于 2013-03-22T21:49:34.313 に答える
0

古い質問ですが、LayoutAnimationController.

私はオーバーライドして、機能をそのクラスにAnimationSet移動しました。LayoutAnimationControllerもちろん、私のカスタム コードと一緒に。

最後に、私はこれについて怒鳴らなければなりません: これは、Google のフレームワークで、お好みの方法でプライベート / 最終 / アクセスが拒否されたコードに遭遇したのは初めてではありません。彼らは私たちプログラマーに苦労を与えると面白いと思っているようです。Transformationパフォーマンスのためにあるのは sだけであることは理解していAnimationますが、時には別の何かが必要なだけで、そのような幼稚な方法で私たちを無効にすることはばかげています。/暴言

于 2014-04-03T07:57:46.930 に答える