Home / Android-Entwicklung / Das Android Arsenal – Ansichtsadapter

Das Android Arsenal – Ansichtsadapter

SimpleGenericAdapter ist eine Android-Bibliothek, mit der Entwickler auf einfache Weise einen Recyclerview-Adapter erstellen können, ohne wiederholt Adapter-Boilerplate erstellen zu müssen.

Funktionen

v0.2.0

  • Scroll-Element-Animation unterstützen
  • Drag & Drop-Funktion hinzufügen [19659006] v0.1.0
    • UI-Modul zum Binden von Artikeldaten erstellen
    • UI-Modul für leeren Status erstellen
    • UI-Modul für Paging erstellen
    • OnItemClickListener unterstützen

    Demo

    Verwendung

    Setup

    Fügen Sie in der Datei build.gradle Ihres Moduls diese Implementierungsanweisung zum Abschnitt Abhängigkeiten hinzu:

     Abhängigkeiten {
      Implementierung  ' com.github.trieulh-ict: SimpleGenericAdapter: x.x.x ' 
    
    } 

    Vergewissern Sie sich auch, dass das Projektmodul jitpack :

    
     allprojects {
        Repositories {
             .. 
    .
            maven {url  ' https://jitpack.io ' 
    
     }
        }
    } 

    Erstellen von Modulen

    • Implementieren eines Elementmoduls mit ItemModule ( ModelType sollte implementieren Diffable )
     class AdvertisementModule [19659027] : ItemModule  < Werbung 
    > () {
         überschreiben  val  layoutRes :  Int  =  R 
    
     .layout.item_ad
    
         überschreiben  val  viewType :  Int  =  ItemType .  ADVERTISEMENT 
    
     .value
    
         überschreiben  Spaß  auf Binden  ( Element :  Werbung  Inhaber :  SimpleViewHolder 
    ) {
                holder.itemView.findViewById < AppCompatTextView > ( R  .id.text_content) .text  = 
    
    
     item.content
        }
    
         überschreiben  Spaß  isModule  ( item :  Diffable ) :  Boolean 
     {
             zurück  Artikel  ist  Werbung 
    
    
        }
    } 
    • Implementieren eines leeren Moduls mithilfe der Klasse
     EmployeeEmptyModule :  EmptyModule 
    
     () {
    
         überschreiben  val  layoutRes :  Int  =  R 
    
     .layout.item_no_employee
    
         überschreiben  Spaß  onBind  ( Inhaber :  SimpleViewHolder 
    ) {
             //  Jetzt nichts tun 
    
    
        }
    } 
    • Erstellen Sie einen Adapter und fügen Sie ihn zu Ihrer Recycling-Übersicht hinzu:
     adapter  =  SimpleGenericAdapter .  Builder 
     ()
                .addItemModule ( AdvertisementModule 
     ())
                .addEmptyModule ( EmployeeEmptyModule 
     ())
                .attachTo (listView) 
    • Sie können ein Paging-Modul erstellen, indem Sie eine Klasse definieren oder ein anonymes Objekt verwenden:
     adapter  =  SimpleGenericAdapter .  Builder 
    
     ()
                ...
                .addPagingModule ( Objekt :  PagingModule 
     () {
                                Überschreibe Spaß mitVisibleThreshold () :  Int  =  3 
     überschreibe  val  layoutRes :  Int  =  R 
     .layout.item_loading_employee
                                 überschreiben  Spaß  auf LoadMore  ( aktuelle Seite :  Int 
    ) {
                                     //  Neue Daten laden und mit `adapter.setItems ()` zum Adapter hinzufügen 
    
    
    
                                }
    
                                 überschreiben  Spaß  onBind  ( Inhaber :  SimpleViewHolder 
    ) {
                                     //  Jetzt nichts tun 
    
    
    
                                }
                            })
                .attachTo (listView) 
    • Derzeit unterstützt die Bibliothek nur OnItemClickerListener:
     adapter  =  SimpleGenericAdapter .  Builder 
    
     ()
                ...
                .addItemModule ( EmployeeModule  (). addOnItemSelectedListener ( object :  OnItemSelectedListener  < Employee 
    > {
                                Überschreibe Spaß onItemSelected (Position :  Int Position :  Angestellter 
    ) {
                                     Toast  .makeText (this @  MainActivity "$ {item.id}",  Toast .  LENGTH_SHORT 
    
    
    ). Show ()
                                }
                            }))
                .attachTo (listView) 

    Scroll-Animation

    • Unterstützt jetzt 4 Standardanimationen ALPHA_IN SCALE_IN SLIDE_IN_BOTTOM und [19459016_R:

     adapter  =  SimpleGenericAdapter .  Builder 
    
     ()
                ...
                .addItemAnimation ( SimpleAnimationType .  SLIDE_IN_RIGHT 
    
    )
                ...
                .attachTo (listView) 
    • Oder Sie können eine eigene benutzerdefinierte Animations-XML erstellen und hinzufügen:
     adapter  =  SimpleGenericAdapter .  Builder 
    
     ()
                ...
                .addItemAnimation ( R 
    
     .anim.slide_right)
                ...
                .attachTo (Listenansicht) 

    Drag & Drop-Element

    • Aktivieren Sie Drag & Drop durch Festlegen des Modus FULL PARTIAL NONE :
     Adapter  =  SimpleGenericAdapter .  Builder 
    
     ()
                ...
                .setDragAndDropMode ( SimpleDragAndDropMode .  FULL 
    
    )
                ...
                .attachTo (listView) 
    • FULL bedeutet, dass Sie das gesamte Element lange drücken können, um es zu ziehen und abzulegen. Um dies zu aktivieren, setzen Sie den Modus auf PARTIAL :
     adapter  =  SimpleGenericAdapter .  Builder 
    
     ()
                ...
                .setDragAndDropMode ( SimpleDragAndDropMode .  PARTIAL 
    
    )
                ...
                .attachTo (listView) 
    • In ItemModule, Set-Ansichtsteil:
     Override  Fun  onBind  ( item :  Employee  Inhaber :  SimpleViewHolder 
    
    
    
    ) {
            ...
            holder.setDragAndDropByView (Ansicht)
            ...
        } 

    In der Zukunft

    Die Bibliothek befindet sich noch in der Entwicklung. Sie können also weitere Funktionen vorschlagen, indem Sie Probleme in dieses Repository übertragen.

    Bildnachweis

    Inspiriert von OneAdapter von ironSource.

    Lizenz

    MIT-Lizenz

    Copyright (c) 2019 Tristan Le

    Hiermit wird jedermann, der eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, die Erlaubnis erteilt, ohne in der Software zu handeln Einschränkung, einschließlich und ohne Einschränkung der Rechte zur Verwendung, zum Kopieren, Ändern, Zusammenführen, Veröffentlichen, Verteilen, Unterlizenzieren und / oder Verkaufen von Kopien der Software und zur Erlaubnis von Personen, denen die Software unter den folgenden Bedingungen zur Verfügung gestellt wird :

    Der obige Urheberrechtshinweis und dieser Genehmigungshinweis sind in allen Kopien oder wesentlichen Teilen der Software enthalten.

    Die Software wird "wie besehen" ohne jegliche ausdrückliche oder stillschweigende Garantie, einschließlich aber nicht, zur Verfügung gestellt BESCHRÄNKT AUF DIE GARANTIEN VON MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER COPYRIGHT-INHABER FÜR JEGLICHE HAFTUNGSANSPRÜCHE, SCHÄDEN ODER SONSTIGE HAFTUNGEN, OB AUS VERTRAGSVERHÄLTNISSEN, UNTER BERÜCKSICHTIGUNG ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDELBAREN HANDELNDEN HANDEL SOFTWARE.

.

About AndroidWeltEditor

Check Also

Android-Entwickler-Blog: Android Game SDK

Gepostet von Dan Galpin Developer Advocate Mit über 2,5 Milliarden monatlich aktiven Geräten bietet die …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.