#android #android-studio #kotlin
Вопрос:
Я искал все, что мог найти на drag listeners, но все, что я нашел, было руководство по студии Android, которое еще больше сбило меня с толку.
Я пытаюсь заставить это работать dashboard.setOnDragListener()
(панель мониторинга-это просто вид карты), но меня смущают необходимые параметры, и я получаю ошибку: No value passed for parameter ‘l’
Я думаю, что в документации упоминалось еще 2 параметра, но я заблудился
Если я смогу получить лучшую помощь, чем та, которую я получил из документации, я буду счастливым человеком
Основная активность.тыс. т:
var dashboard = findViewById<View>(R.id.dashboard)
Ответ №1:
Помните, что целевое представление, которое получает перетаскивание, получает прослушиватель перетаскивания. Представления, которые будут перетаскиваться, получат вызов startDragAndDrop.
Вот как выглядит моя:
inner class MyDragListener(): View.OnDragListener {
override fun onDrag(view: View?, dragEvent: DragEvent?): Boolean {
//you might also want to use this if to distinguish between different views that might be dragged
if (dragEvent!!.action==DragEvent.ACTION_DROP)
{
//do stuff here
return true
}
}
Затем для представлений, которые перетаскиваются, зарегистрируйте их для операции перетаскивания, подобной этой.
dragableView.setOnLongClickListener({
//here you could add some effects for
//hinting to the user that something is being dragged.
//I like to use a vibrator and toggle the visibility
//of something else on the screen
val dbs= View.DragShadowBuilder(it)
var clipData= ClipData.newPlainText("","")
it.startDragAndDrop(clipData,dbs,it,0)
})
Ах да, я чуть не забыл. Передайте свой драглистенер цели.
dashboard.setOnDragListener(MyDragListener())