为了账号安全,请及时绑定邮箱和手机立即绑定

IllegalStateException:拖动阴影尺寸必须为正

IllegalStateException:拖动阴影尺寸必须为正

白猪掌柜的 2021-08-19 17:27:17
https://developer.android.com/reference/android/view/View.DragShadowBuilder#public-constructors当我使用上面概述的第二个构造函数时 - “View.DragShadowBuilder() 构造一个没有关联视图的阴影构建器对象。”引发以下异常:java.lang.IllegalStateException:拖动阴影尺寸必须为正这里的第二行代码对我来说是这样的:public boolean onLongClick(View view) {    view.startDragAndDrop(null, new View.DragShadowBuilder(), view, 0);     return true;}它仅发生在 Android 9 Pie 上。我已经在以前的 Android 版本上试过了,没有问题。我在 Android 问题跟踪器上创建了一个问题,但也许这里有人知道它为什么会发生或如何解决它。与此同时,我正在创建新的 View.DragShadowBuilderView(view),其中 view 是一个透明的 ImageView,它现在可以停止崩溃,但我不确定它是否是最好的解决方案。
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

无需创建透明视图。创建自定义DragShadowBuilder


public class MyDragShadowBuilder extends View.DragShadowBuilder {


    @Override

    public void onProvideShadowMetrics(Point outShadowSize, Point outShadowTouchPoint) {

        outShadowSize.set(1,1);

        outShadowTouchPoint.set(0,0);

    }

}

并替换new View.DragShadowBuilder()为new MyDragShadowBuilder().


查看完整回答
反对 回复 2021-08-19
?
绝地无双

TA贡献1946条经验 获得超4个赞

无需创建透明视图。创建自定义DragShadowBuilder


public class MyDragShadowBuilder extends View.DragShadowBuilder {


    @Override

    public void onProvideShadowMetrics(Point outShadowSize, Point outShadowTouchPoint) {

        outShadowSize.set(1,1);

        outShadowTouchPoint.set(0,0);

    }

}

并替换new View.DragShadowBuilder()为new MyDragShadowBuilder().


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 403 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信