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;
它看起来像是我需要的,但我不知道如何访问和设置这样的标志:(任何想法?
2016-09-24
loki
+0
你也许'removeView()',然后立即用更新'LayoutParams'添加回来。 –
+0
Mike M,有效地做RemoveView和AddView删除动画,但这真的是最好的办法吗?我看看Android源代码,我看到布局参数有PRIVATE_FLAG_NO_MOVE_ANIMATION和public int privateFlags;也许我必须玩这个? –
+0
我们通过回答这个问题解决了这个问题。使用反射来禁用私有标志动画。 http://stackoverflow.com/a/33171254/5053013 –