の原因となります。それぞれのビューにカスタムAnimationクラスが適用されている場所に、私が書いた移行があります。この移行中に、zオーダーの一番下のビューを前面に持っていく必要があります。私はこれでこれを行います:アンドロイドView.bringToFrontは()私はでframeLayout内で複数のビューを持っているちらつき
public static void putBackAtFront(ViewGroup v)
{
v.getChildAt(0).bringToFront();
refreshEverything(v);
}
これは私のカスタムアニメーションのapplyTransformation()内から呼び出されます。
すなわち
public class PivotAnimation extends Animation {
private View view;
...
@Override
protected void applyTransformation(float interpolatedTime, Transformation t)
{
...
if(interpolatedTime >= 1.f && isAtBack(view))
{
putBackAtFront(view);
}
...
}
...
}
refreshEverything()親でframeLayoutとそのすべての子に無効化()とrequestLayout()を呼び出します。
putBackAtFront()が呼び出されると、一番下にあるビューがただちに再表示される前に1つのフレームで消え、ちらつきが目立ちます。私はrefreshEverything()を呼び出さずに試してみましたが、違いはありません。
私はあなたがinterpolatedTimeに基づいてアニメーションを行う必要がありますので、その1.0、アニメーションは終わりであるので、あなたときapplyTransformationは()、アニメーション中に複数回呼び出されるAPIレベル7.
申し訳ありませんが、私は明確にするために私の質問を更新しました。私はあなたが言うように、すでにやっています。 putBackAtFront()は、毎回ではなく、トランジションの終了時に一度だけ呼び出されます。 –