【问题标题】:How to stop animation of dragged view?如何停止拖动视图的动画?
【发布时间】:2017-02-15 12:07:37
【问题描述】:

我有 2 个 GridView,我可以将项目从一个拖动到另一个。但是在删除视图之后,android 会播放一个动画,移动到被删除视图的原始位置。像那样:

在该示例中,我将顶部网格项放到底部网格中。

我尝试在放置项目和 DragShadow 后将其销毁。但这没有帮助。 此动画仅在装有 Android Nougat OS (24+) 的设备上播放。所以我想知道,我怎样才能禁用它?

【问题讨论】:

  • 你找到解决办法了吗?
  • 我们也在寻找解决方案,您找到解决方案了吗?
  • 一切都与 View.OnDragListener 有关。在我的示例中,我仅在 topGrid 上使用了 OnDragListener。但是,如果我在它们两个上都设置了 OnDragListener,一切都会按预期进行。我猜,Android 认为你没有处理 drop 事件,导致你从顶部放置项目的视图没有 dragListener

标签: android drag-and-drop android-7.0-nougat


【解决方案1】:

都是关于View.OnDragListener。在我的示例中,我仅在 topGrid 上使用了 OnDragListener。但是如果我在它们两个上都设置了OnDragListener,一切都会按预期进行。我猜,Android 认为你没有处理 drop 事件,导致你从顶部放置项目的视图没有 dragListener

【讨论】:

    【解决方案2】:

    这是为了澄清先前的答案。如果您想摆脱在放置时发生的动画,请设置一个对 Activity 的内容视图不执行任何操作的 OnDragListener:

    View theContentView = theContext.findViewById(android.R.id.content);
    theContentView.setOnDragListener(xxx);
    

    其中 xxx 是一个 OnDragListener,它的 onDrag(...) 方法除了返回 TRUE 之外什么都不做。

    【讨论】:

      猜你喜欢
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 2023-03-18
      • 2016-03-27
      • 1970-01-01
      相关资源
      最近更新 更多