我有一個FrameLayout內的幾個視圖。我寫了一個轉換,其中每個視圖都有一個自定義的Animation類應用。在這個轉換過程中,我需要將視圖底部的z順序放在前面。我這樣做:Android View.bringToFront()導致閃爍
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()調用無效()和requestLayout()對父的FrameLayout和它的所有兒童。
除了在調用putBackAtFront()時,現在最底層的視圖在瞬間重新出現之前就消失了一幀,導致明顯的閃爍,所有東西都完美運行。我也嘗試不調用refreshEverything(),它沒有任何區別。
我針對API級別7
對不起,我已更新我的問題以澄清。我已經按你說的去做了; putBackAtFront()只在轉換結束時被調用一次,而不是每次都調用。 – 2012-04-03 03:08:04