{"id":12213,"date":"2017-01-16T18:26:57","date_gmt":"2017-01-16T17:26:57","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12213"},"modified":"2017-01-16T18:26:57","modified_gmt":"2017-01-16T17:26:57","slug":"draglistview-implementare-il-drag-and-drop-nelle-listview-android","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/draglistview-implementare-il-drag-and-drop-nelle-listview-android\/","title":{"rendered":"DragListView: implementare il drag and drop nelle ListView Android"},"content":{"rendered":"<p>La ListView \u00e8 uno dei <em>widget<\/em> pi\u00f9 comuni nelle interfacce Android. Parliamo della ben nota lista che tipicamente permette di mostrare in maniera agevole un elenco di informazioni contenute in una struttura dati siano esse notizie, messaggi, annunci immobiliari o altro ancora.<\/p>\n<p>Un aspetto che pu\u00f2 migliorare il livello della <em>user experience<\/em>, avvicinandolo a quanto si vive nelle applicazioni desktop, \u00e8 l&#8217;utilizzo del <em>drag and drop<\/em> per poter trascinare gli elementi e modificarne cos\u00ec l&#8217;ordinamento.<\/p>\n<p>Una libreria che permette di svolgere questa attivit\u00e0 \u00e8 <strong>DragListView<\/strong>, disponibile presso <a href=\"https:\/\/github.com\/woxblom\/DragListView\" target=\"_blank\">GitHub<\/a>.\u00a0Un video dimostrativo \u00e8 disponibile presso <a href=\"https:\/\/www.youtube.com\/watch?v=tNgevYpyA9E\" target=\"_blank\">YouTube <\/a>e rende l&#8217;idea della finalit\u00e0 di questo strumento meglio di mille parole:<\/p>\n<p><iframe loading=\"lazy\" width=\"642\" height=\"361\" src=\"https:\/\/www.youtube.com\/embed\/tNgevYpyA9E?rel=0&amp;showinfo=0\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>La sua integrazione all&#8217;interno del progetto Android Studio \u00e8 piuttosto veloce grazie al solito Gradle che richiede:<\/p>\n<ul>\n<li>regolazione delle dipendenze con le seguenti righe:\n<pre class=\"lang:java decode:true \">repositories {\r\n    mavenCentral()\r\n}\r\n\r\ndependencies {\r\n    compile 'com.github.woxthebox:draglistview:1.2.8'\r\n}<\/pre>\n<\/li>\n<li>aggiunta di una regola Proguard:\n<pre class=\"lang:java decode:true\">-keep class com.woxthebox.draglistview.** { *; }<\/pre>\n<\/li>\n<\/ul>\n<p>Per quanto riguarda l&#8217;utilizzo della libreria, la pagina del progetto su GitHub fornisce spiegazioni ed esempi di codice nonch\u00e8 una lista di app disponibili sui market che gi\u00e0 ne fanno uso. Essenzialmente si tratter\u00e0 di gestire una ListView estesa con\u00a0le azioni tipiche del drag-and-drop i cui effetti si ripercuoteranno sui dati gestiti dall&#8217;Adapter.<\/p>\n<p>E allora non aspettate ad arricchire le vostre interfacce utente, conferendo un tocco di usabilit\u00e0 in pi\u00f9 che piacer\u00e0 ai vostri utenti.<\/p>\n<p>Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La ListView \u00e8 uno dei widget pi\u00f9 comuni nelle interfacce Android. Parliamo della ben nota lista che&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12721,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1682,7],"tags":[1278,1846,1532,1847,1840],"class_list":["post-12213","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-strumenti-di-sviluppo","tag-android","tag-drag-drop-android","tag-librerie-android","tag-listview-android","tag-tools-android"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12213"}],"version-history":[{"count":4,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12213\/revisions"}],"predecessor-version":[{"id":12722,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12213\/revisions\/12722"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12721"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}