Возникли проблемы с настройкой прослушивателя перетаскивания | Kotlin | Android Studio

#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())