当我执行以下操作时:
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文件中看到了以下条目:
/**
* 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.