IllegalStateException: размеры перетаскивания тени должны быть положительными - PullRequest
0 голосов
/ 29 августа 2018

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) с прозрачным представлением ImageView, которое на данный момент останавливает сбой, но я не уверен, является ли это лучшим решением.

1 Ответ

0 голосов
/ 28 сентября 2018

Нет необходимости создавать прозрачный вид. Создать кастом 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().

...