Как сфокусироваться на перетаскивании тени при включенной обратной связи?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как сфокусироваться на перетаскивании тени при включенной обратной связи?

Сообщение Anonymous »

Я использую собственный DragShadowBuilder для перетаскивания. Тень перетаскивания будет создана после длительного щелчка по элементу при включенной обратной связи.
Через 1 секунду я отправляю событие доступности в перетащить тень. Помимо отправки TYPE_VIEW_ACCESSIBILITY_FOCUSED, я также попробовал TYPE_VIEW_FOCUSED и TYPE_VIEW_HOVER_ENTER.
После начала перетаскивания я не могу сфокусировать обратную связь (зеленую рамку) поверх тени перетаскивания.

Код: Выделить всё

binding.item.setOnLongClickListener { view ->
val data = ClipData.newPlainText("", "")
val shadowBuilder = CustomDragShadowBuilder(view)
view?.startDragAndDrop(data, shadowBuilder, view, 0)
view.postDelayed({
shadowBuilder.view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED)
}, 1000)
false
}
CustomDragShadowBuilder следующим образом.

Код: Выделить всё

class CustomDragShadowBuilder(view: View) : View.DragShadowBuilder(view) {
init {
view.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
view.contentDescription = "one two three"
}
override fun onDrawShadow(canvas: Canvas) {
canvas.drawColor(view.context.getColor(R.color.custom_drag_shadow_color))
view.draw(canvas)
}
override fun onProvideShadowMetrics(outShadowSize: Point, outShadowTouchPoint: Point) {
val width = view.width
val height = view.height
outShadowSize.set(width, height)
outShadowTouchPoint.set(width / 2, height / 2)
}
}
Кроме того, я обнаружил, что не могу найти этот узел тени перетаскивания в дереве компонентов моего приложения, и его создание, похоже, не оказало никакого влияния на мое приложение.Я ожидаю, что после начала перетаскивания диалог (зеленая рамка) будет сфокусирован на тени перетаскивания.

Подробнее здесь: https://stackoverflow.com/questions/789 ... alkback-on
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»