android - 如何在没有任何动画的情况下通过 windowManager.UpdateViewLayout 移动 View ?

标签 android android-animation android-windowmanager

当我这样做时:

    LayoutParams lp = getLayoutParams(view);
    lp.x = absoluteX;
    lp.y = absoluteY;
    this.mWindowManager.updateViewLayout(view, lp);

然后我有一个从 View 所在位置到新位置 absoluteX/absoluteY 的线性动画。如何在没有任何动画的情况下移动 View ?

我尝试设置 lp.windowAnimations = 0 但它没有任何改变:( 知道我该怎么做吗?

如果无法避免动画,他们是否有办法知道 View 的实际位置?也许我可以让它不可见但真正的位置不是 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;

它看起来像是我需要的,但我不知道如何访问和设置这样的标志 :( 知道吗?

最佳答案

尝试禁用布局动画:

android:animateLayoutChanges="false"

关于android - 如何在没有任何动画的情况下通过 windowManager.UpdateViewLayout 移动 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39671343/

相关文章:

android - 应用程序显示错误无法添加窗口—— token null 无效;你的 Activity 在运行吗?

android - Android 中的全屏服务

android - 清空 Singleton 实例和所有字段

Android studio logcat nothing to show 使用过滤器添加关键字

android - 为什么要使用 Android Picasso 库下载图片?

android - 暂停和恢复 Lottie 动画

android - 缩放和平移动画

android - 在 Android 中检测用户的锁屏密码错误

java - 防止将重复 View 添加到列表适配器

Android 4.4 动画嵌套 View 时旋转动画闪烁