Через 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
}
Код: Выделить всё
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