當我做:如何通過windowManager.UpdateViewLayout在沒有任何動畫的情況下移動視圖?
LayoutParams lp = getLayoutParams(view);
lp.x = absoluteX;
lp.y = absoluteY;
this.mWindowManager.updateViewLayout(view, lp);
然後我有從位置一個線性動畫其中視圖是到新的位置absoluteX/absoluteY。如何在沒有任何動畫的情況下移動視圖?
我嘗試設置lp.windowAnimations = 0但它改變什麼:( 任何想法,我該怎麼辦?
如果這是無法避免的動畫,是他們沒有辦法知道實際?視圖的位置,也許我可以使其不可見仍是真正的位置是不是absoluteX/absoluteY
注:
找了Android的源代碼,我在文件WindowManager.java這ENTR看到y:
/**
* Never animate position changes of the window.
*
* {@hide} */
public static final int PRIVATE_FLAG_NO_MOVE_ANIMATION = 0x00000040;
/**
* Control flags that are private to the platform.
* @hide
*/
public int privateFlags;
它看起來像是我需要的,但我不知道如何訪問和設置這樣的標誌:(任何想法?
你也許'removeView()',然後立即用更新'LayoutParams'添加回來。 –
Mike M,有效地做RemoveView和AddView刪除動畫,但這真的是最好的辦法嗎?我看看Android源代碼,我看到佈局參數有PRIVATE_FLAG_NO_MOVE_ANIMATION和public int privateFlags;也許我必須玩這個? – loki
我們通過回答這個問題解決了這個問題。使用反射來禁用私有標誌動畫。 http://stackoverflow.com/a/33171254/5053013 –