Ionic 5 Full Starter App
  • Enappd Apps
  • Ionic 5 Full App
    • What is Ionic 5 Full App?
    • Template Features
    • Initial Setup
      • Environment Configuration
      • Credentials
    • Running the app
    • Deploying app as PWA
    • Building App on device
    • How to use this template?
      • Copy a module to another app
      • Shared Component & Modules
      • Map Service
    • Beginner Pack Features
      • Firebase
      • Layouts
      • Sidemenus
      • Login and Signups
      • Chat screens
      • Chat Lists
      • Video Playlists
      • Grids and Lists Layouts
    • Startup Pack Features
      • Wordpress
        • Wordpress JSON API Basics
        • Wordpress in Ionic 5 Full App
      • Translation - Multi-language
      • Using Custom Fonts
      • Infinite scroll
      • Content Loaders
      • Pull to refresh
      • List re-ordering
      • Date Pickers
    • Pro Pack Features
      • Phaser Game Framework
      • AdMob Integration
        • AdMob Introduction
        • Setting up Google Admob
        • Integration
      • Social Sharing
      • QR and Barcode Scanning
      • Google Places
      • Google Autocomplete
      • Social Logins
        • Google Login
        • Facebook Login
        • Twitter Login
      • Woo-commerce Integration
    • Removing a Page / Component
    • Removing a plugin
    • FAQs
    • Changelog
    • Troubleshoot
Powered by GitBook
On this page

Was this helpful?

  1. Ionic 5 Full App
  2. Startup Pack Features

List re-ordering

Easily create lists with drag-and-drop functionality to reorders items

Ionic has long awaited a standard drag-n-drop functionality for list items. ion-reorder is Ionic's standard tag to include in an ion-item to make it draggable to reorder. This ion-item should be contained within an ion-reorder-group to function properly.

<ion-item>
  <ion-label>
    Item
  </ion-label>
  <ion-reorder slot="end"></ion-reorder>
</ion-item>

In Full App, list re-ordering in located in src/app/pages/addons/reorder

Following is the sample code for a re-order enabled, drag-n-drop capable item list

<ion-reorder-group (ionItemReorder)="reorderItems($event)" disabled="false">
  <ion-item *ngFor="let item of items">
    <ion-label>Item {{ item }}</ion-label>
    <ion-reorder slot="end"></ion-reorder>
  </ion-item>
</ion-reorder-group>

Completion event

(ionItemReorder)="reorderItems($event)" is the declaration of ionItemReorderlistener attached to the reorder group. When this listener is fired, you can call a function like reorderItemswhich contains the logic of reordering.

 reorderItems(ev) {
    const element = this.items[ev.detail.from];
    this.items.splice(ev.detail.from, 1);
    this.items.splice(ev.detail.to, 0, element);
    ev.detail.complete();
  }

ev.detail.complete(); , where ev is the drop event, marks the completion of your reorder logic, and at this moment, you will display the modified list to the user.

Custom Drag Handles

In the above example, we used a default drag-handle.

We can use a custom drag-handle icons by defining the content inside ion-reorder tag

<ion-reorder slot="start">
   <ion-icon name="nuclear"></ion-icon>
</ion-reorder>

We can also make the whole ion-item draggable, by containing it inside the ion-reorder tag, like so

<ion-reorder *ngFor="let item of items3">
  <ion-item >
    <ion-label>Item {{ item }}</ion-label>
  </ion-item>
</ion-reorder>
PreviousPull to refreshNextDate Pickers

Last updated 6 years ago

Was this helpful?

Different drag handles