Listview for Angular and Ionic Framework

Updated on May 17, 2021
Learn More

Advanced list view component with gesture, swipe and drag & drop support.

Use it along Mobiscroll forms, pages or in any web or mobile hybrid app. Suited for small to large screens.

Shipping with useful features for a refined UX, including:

  • Support for alternating row color
  • Use it with single, multi-line text or custom content
  • Render cards instead of full-width rows
  • Enhance content with images, avatars and icons
  • Built-in support for sorting and ordering
  • Multiple data-source support
  • Load on demand capabilities
  • Top positioned sticy header for segmenting the list
  • Simple to advanced grouping capabilities
  • CRUD with undo functionality
  • Full-blown gesture support
  • Hierarchical listviews with variable depth
  • Multiple theme support



As part of Gesture enabled listview it can be picked up with the Framework and Complete licenses or with the component license.


Listview available for other frameworks.

Viewing demos & code for

Angular and Ionic Listview Hierarchy

Build hierarchical listviews. Use it for navigation, inline or in modals.
Hierarchical listview
    • North America
      • Back
      • USA
        • Back
        • Washington
        • Florida
        • Los Angeles
        • New York
        • Detroit
        • Chicago
      • Canada
        • Back
        • Vancouver
        • Winnipeg
        • Calgary
        • Montreal
        • Quebec
    • South America
      • Back
      • Argentina
        • Back
        • Buenos Aires
        • Córdoba
        • Rosario
        • Mendoza
      • Brazil
        • Back
        • Rio de Janeiro
        • Sao Paolo
        • Brasília
        • Salvador
        • Fortaleza
      • Chile
        • Back
        • Santiago
        • Concepción
        • Valparaíso
    • Europe
      • Back
      • France
        • Back
        • Paris
        • Toulouse
        • Marseille
        • Strasbourg
        • Bordeaux
        • Lyon
      • Germany
        • Back
        • Berlin
        • Frankfurt
        • Hamburg
        • Stuttgart
        • Munich
      • Spain
        • Back
        • Madrid
        • Barcelona
        • Bilbao
        • Valencia
        • Zaragoza
      • Italy
        • Back
        • Rome
        • Palermo
        • Genoa
        • Torino
        • Milan
    • Asia
      • Back
      • China
        • Back
        • Shanghai
        • Hong Kong
        • Beijing
        • Tianjin
        • Wuhan
        • Chongqing
      • Japan
        • Back
        • Tokyo
        • Kagoshima
        • Osaka
        • Yokohama
        • Kawasaki
        • Kyoto
        • Sapporo
    • Australia
      • Back
      • Australia
        • Back
        • Sydney
        • Canberra
        • Melbourne
        • Perth
        • Brisbane
        • Sunshine Coast
      • New Zeland
        • Back
        • Wellington
        • Auckland
        • Christchurch
        • Napier-Hastings
        • Tauranga
    • Africa
      • Back
      • Egypt
        • Back
        • Cairo
        • Alexandria
        • Giza
        • Shubra El-Kheima
        • Suez
        • Luxor
      • South Africa
        • Back
        • Port Elizabeth
        • Kimberley
        • Cape Town
        • Johannesburg
        • Durban
      • Tanzania
        • Back
        • Dar es Salaam
        • Mwanza
        • Arusha
        • Dodoma
        • Zanzibar City
      • Ghana
        • Back
        • Kumasi
        • Accra
        • Sekondi-Takoradi
        • Tamale
        • Sunyani
    The listview can also be rendered inside a card
      • North America
        • Back
        • USA
          • Back
          • Washington
          • Florida
          • Los Angeles
          • New York
          • Detroit
          • Chicago
        • Canada
          • Back
          • Vancouver
          • Winnipeg
          • Calgary
          • Montreal
          • Quebec
      • South America
        • Back
        • Argentina
          • Back
          • Buenos Aires
          • Córdoba
          • Rosario
          • Mendoza
        • Brazil
          • Back
          • Rio de Janeiro
          • Sao Paolo
          • Brasília
          • Salvador
          • Fortaleza
        • Chile
          • Back
          • Santiago
          • Concepción
          • Valparaíso
      • Europe
        • Back
        • France
          • Back
          • Paris
          • Toulouse
          • Marseille
          • Strasbourg
          • Bordeaux
          • Lyon
        • Germany
          • Back
          • Berlin
          • Frankfurt
          • Hamburg
          • Stuttgart
          • Munich
        • Spain
          • Back
          • Madrid
          • Barcelona
          • Bilbao
          • Valencia
          • Zaragoza
        • Italy
          • Back
          • Rome
          • Palermo
          • Genoa
          • Torino
          • Milan
      • Asia
        • Back
        • China
          • Back
          • Shanghai
          • Hong Kong
          • Beijing
          • Tianjin
          • Wuhan
          • Chongqing
        • Japan
          • Back
          • Tokyo
          • Kagoshima
          • Osaka
          • Yokohama
          • Kawasaki
          • Kyoto
          • Sapporo
      • Australia
        • Back
        • Australia
          • Back
          • Sydney
          • Canberra
          • Melbourne
          • Perth
          • Brisbane
          • Sunshine Coast
        • New Zeland
          • Back
          • Wellington
          • Auckland
          • Christchurch
          • Napier-Hastings
          • Tauranga
      • Africa
        • Back
        • Egypt
          • Back
          • Cairo
          • Alexandria
          • Giza
          • Shubra El-Kheima
          • Suez
          • Luxor
        • South Africa
          • Back
          • Port Elizabeth
          • Kimberley
          • Cape Town
          • Johannesburg
          • Durban
        • Tanzania
          • Back
          • Dar es Salaam
          • Mwanza
          • Arusha
          • Dodoma
          • Zanzibar City
        • Ghana
          • Back
          • Kumasi
          • Accra
          • Sekondi-Takoradi
          • Tamale
          • Sunyani

      Listview - Basic

      Change demo
      Basic
      Angular Listview demo for creating a simple list of items. Add stripes for alternating background colors of list items. For Angular 19 and Ionic 8.
      Copy code

      Listview - Content

      Change demo
      Content
      Angular Listview demo for rendering different types of content. Use it for multi-line text, cards or any content with custom CSS. For Angular 19 and Ionic 8.
      Copy code

      Listview - Image/Icon/Avatar

      Change demo
      Image/Icon/Avatar
      Angular Listview image demo for rendering content with regular images, icons and avatars. Customize it with custom CSS. For Angular 19 and Ionic 8.
      Copy code

      Listview - Selecting items

      Change demo
      Selecting items
      Angular Listview item selection example. Select a single item or enable multiple selection for batch operations. For Angular 19 and Ionic 8.
      Copy code

      Listview - Sorting & ordering

      Change demo
      Sorting & ordering
      Angular Listview reorder demo. Grab and sort from drag handle on the left or right side, or tap/click and hold to sort. For Angular 19 and Ionic 8.
      Copy code

      Listview - Sticky header

      Change demo
      Sticky header
      Angular Listview demo with sticky header. List out names or contacts grouped alphabetically with the first letter on top. For Angular 19 and Ionic 8.
      Copy code

      Listview - Grouping

      Change demo
      Grouping
      Angular Listview demo with group headers. Use it to logically segment and group items without creating multiple lists. For Angular 19 and Ionic 8.
      Copy code

      Listview - Create, Read, Update, Delete

      Change demo
      Create, Read, Update, Delete
      Angular Listview demo with CRUD operations & swipe actions. Slide right to update and left to delete items. For Angular 19 and Ionic 8.
      Copy code

      Listview - Remove/Undo

      Change demo
      Remove/Undo
      Angular Listview demo with swipe-away delete and built-in undo functionality. Use it for laying out notifications or any data. For Angular 19 and Ionic 8.
      Copy code

      Listview - Swipe actions

      Change demo
      Swipe actions
      Angular Listview demo with swipe revealing actions. Render an action list or action menu when sliding items left and right. For Angular 19 and Ionic 8.
      Copy code

      Listview - Hierarchy

      Change demo
      Hierarchy
      Angular Listview with multi-level hierarchy and drill-down interface. Featuring images, icons and text. For Angular 19 and Ionic 8.
      Copy code
      import { Component } from '@angular/core';
      import { mobiscroll, MbscListviewOptions } from '@mobiscroll/angular';
      
      mobiscroll.settings = {
          theme: 'ios',
          themeVariant: 'light'
      };
      
      @Component({
          selector: 'app-root',
          templateUrl: './app.component.html'
      })
      
      export class AppComponent {
          data = [{
                  cl: 'md-continent micons icon-north-america',
                  name: 'North America',
                  children: [{
                      imgsrc: 'https://img.mobiscroll.com/demos/flags/US.png',
                      name: 'USA',
                      children: [{
                          name: 'Washington'
                      }, {
                          name: 'Florida'
                      }, {
                          name: 'Los Angeles'
                      }, {
                          name: 'New York'
                      }, {
                          name: 'Detroit'
                      }, {
                          name: 'Chicago'
                      }]
                  }, {
                      imgsrc: 'https://img.mobiscroll.com/demos/flags/CA.png',
                      name: 'Canada',
                      children: [{
                          name: 'Vancouver'
                      }, {
                          name: 'Winnipeg'
                      }, {
                          name: 'Calgary'
                      }, {
                          name: 'Montreal'
                      }, {
                          name: 'Quebec'
                      }]
                  }]
              }, {
                  cl: 'md-continent micons icon-south-america',
                  name: 'South America',
                  children: [{
                      imgsrc: 'https://img.mobiscroll.com/demos/flags/ar.png',
                      name: 'Argentina',
                      children: [{
                          name: 'Buenos Aire'
                      }, {
                          name: 'Córdoba'
                      }, {
                          name: 'Rosario'
                      }, {
                          name: 'Mendoza'
                      }]
                  }, {
                      imgsrc: 'https://img.mobiscroll.com/demos/flags/br.png',
                      name: 'Brazil',
                      children: [{
                          name: 'Rio de Janeiro'
                      }, {
                          name: 'Sao Paolo'
                      }, {
                          name: 'Brasília'
                      }, {
                          name: 'Salvador'
                      }, {
                          name: 'Fortaleza'
                      }]
                  }, {
                      imgsrc: 'https://img.mobiscroll.com/demos/flags/cl.png',
                      name: 'Chile',
                      children: [{
                          name: 'Santiago'
                      }, {
                          name: 'Concepción'
                      }, {
                          name: 'Valparaíso'
                      }]
                  }]
              } // Showing partial data. Download full source.
      ];
      
          listviewSettings: MbscListviewOptions = {
              swipe: false,
              enhance: true
          };
      
          insideCardSettings: MbscListviewOptions = {
              swipe: false,
              enhance: true
          };
      
      }
      <mbsc-form>
          <mbsc-form-group>
              <mbsc-form-group-title>Hierarchical listview</mbsc-form-group-title>
              <mbsc-listview [options]="listviewSettings">
                  <mbsc-listview-item *ngFor="let conti of data">
                      <span class="{{conti.cl}}"> </span> {{conti.name}}
                      <mbsc-listview-sublist>
                          <mbsc-listview-item *ngFor="let country of conti.children">
                              <img [src]="country.imgsrc" /> {{country.name}}
                              <mbsc-listview-sublist>
                                  <mbsc-listview-item *ngFor="let city of country.children">
                                      {{city.name}}
                                  </mbsc-listview-item>
                              </mbsc-listview-sublist>
                          </mbsc-listview-item>
                      </mbsc-listview-sublist>
                  </mbsc-listview-item>
              </mbsc-listview>
          </mbsc-form-group>
          <div class="mbsc-padding">The listview can also be rendered inside a card</div>
          <mbsc-card>
              <mbsc-listview [options]="insideCardSettings">
                  <mbsc-listview-item *ngFor="let conti of data">
                      <span class="{{conti.cl}}"> </span> {{conti.name}}
                      <mbsc-listview-sublist>
                          <mbsc-listview-item *ngFor="let country of conti.children">
                              <img [src]="country.imgsrc" /> {{country.name}}
                              <mbsc-listview-sublist>
                                  <mbsc-listview-item *ngFor="let city of country.children">
                                      {{city.name}}
                                  </mbsc-listview-item>
                              </mbsc-listview-sublist>
                          </mbsc-listview-item>
                      </mbsc-listview-sublist>
                  </mbsc-listview-item>
              </mbsc-listview>
          </mbsc-card>
      </mbsc-form>
      .demo-main-cont.demo-comp-listview { padding: 0; }
      .demo-comp-listview .demo-note { margin: 10px; }
      
      .md-country .mbsc-lv-img {
          margin-top: -.6em;
          width: 2em;
      }
      
      .md-continent {
          font-size: 36px;
          position: absolute;
          height: 1em;
          width: 1em;
          top: 50%;
          margin-top: -.5em;
          text-align: center;
      }
      
      .mbsc-ltr .md-continent {
          left: .42em;    
      }
      
      .mbsc-rtl .md-continent {
          right: .42em;    
      }
      import { BrowserModule } from '@angular/platform-browser';
      import { NgModule } from '@angular/core';
      import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';
      import { FormsModule, ReactiveFormsModule } from '@angular/forms';
      import { MbscModule } from '@mobiscroll/angular';
      import { AppComponent } from './app.component';
      
      @NgModule({
        declarations: [
          AppComponent
        ],
        imports: [
          BrowserModule,
          MbscModule,
          FormsModule,
          ReactiveFormsModule,
          HttpClientModule,
          HttpClientJsonpModule
        ],
        bootstrap: [AppComponent]
      })
      export class AppModule { }
      
      Show more code

      Listview - Checklist

      Change demo
      Checklist
      Angular Drag & Drop checklist/tasklist with swipe actions to add/remove items from todo listview. Sorting is supported. For Angular 19 and Ionic 8.
      Copy code

      Listview - Filtering

      Change demo
      Filtering
      Angular Listview demo with dynamic data and live filtering. Add and remove items on the fly or reload the full list. For Angular 19 and Ionic 8.
      Copy code

      Listview - Data sources

      Change demo
      Data sources
      Angular Listview demo with different ways of getting and passing data. Supporting hardcoded lists, dynamic and remote data. For Angular 19 and Ionic 8.
      Copy code

      Listview - Load on demand

      Change demo
      Load on demand
      Angular Listview load on demand demo. Load data from a REST service and populate the list as users scroll content. For Angular 19 and Ionic 8.
      Copy code

      Listview - Load more

      Change demo
      Load more
      Angular Listview demo with load more button for loading additional items from a REST service. Get and display records from JSON. For Angular 19 and Ionic 8.
      Copy code

      Listview - Master-detail view

      Change demo
      Master-detail view

      Build a two pane master-detail view with the help of the listview. Use the grid layout to set up the two columns - left side for a list of names, right side for showing the details. If you want to get into the details you could even hide the first column and build a drawer or use a hamburger menu for the master list.

      Use the navigation component for the tabs and cards for building the layout of the details view.

      Want to learn more about building responsive layouts?  Check out the grid layout →
      Copy code

      Listview - Event handlers

      Change demo
      Event handlers
      Angular Listview demo with event hooks for deep integration and custom functionality. With source code. For Angular 19 and Ionic 8.
      Clear event log
      EVENTS FIRED: 
      Copy code

      Listview - Quick Navigation

      Change demo
      Quick Navigation
      Angular Listview demo with quick access to list segments. Alphabetically group items and provide a tab list for selection. For Angular 19 and Ionic 8.
      Copy code

      Looking for something you didn't see or have a sales question?
      Ask us about it, we're here to help.

      Customize & try demos locally
      Sign in or start your free trial

      What framework are you using?

      Javascript
      jQuery
      AngularJS
      Angular
      React
      Other
      Ionic Angular
      Email address

      Install demo in your app
      Follow this quick, two minute install guide
      Close window

      Step 1.Install the Mobiscroll CLI from npm

      Copy command
      $ npm install -g @mobiscroll/cli

      The CLI makes configuring your apps super simple 👍

      Step 2.Run the following command in the root folder of your Ionic project

      Copy command
      $ mobiscroll config ionic --version=4

      You will be prompted to log in with your mobiscroll account. Set your password here

      Step 3.Copy the code into your app.

      Copy TS
      Copy HTML
      Copy CSS
      Copy Module

      Step 4.Run ionic serve in the root folder of your app 🎉

      Copy command
      $ ionic serve

      And voilà, everything should be running smoothly.

      Install demo in your app
      Follow this quick, two minute install guide
      Close window

      Step 1.Install the Mobiscroll CLI from npm

      Copy command
      $ npm install -g @mobiscroll/cli

      The CLI makes configuring your apps super simple 👍

      Step 2.Run the following command in the root folder of your Ionic project

      Copy command
      $ mobiscroll config ionic --version=4

      You will be prompted to log in with your mobiscroll account. Set your password here

      Step 3.Copy the code into your app.

      Copy TSX
      Copy CSS

      Step 4.Run ionic serve in the root folder of your app 🎉

      Copy command
      $ ionic serve

      And voilà, everything should be running smoothly.

      Customize & try demos locally
      How would you like to do it?
      Install demo in your app
      Follow this quick, two minute install guide
      Close window

      Step 1.Install the Mobiscroll CLI from npm

      Copy command
      $ npm install -g @mobiscroll/cli

      The CLI makes configuring your apps super simple 👍

      Step 2.Run the following command in the root folder of your Angular project

      Copy command
      $ mobiscroll config angular --version=4

      You will be prompted to log in with your mobiscroll account. Set your password here

      Step 3.Copy the code into your app. HTML goes into the markup, TS into Typescript.

      Copy TS
      Copy HTML
      Copy CSS
      Copy Module

      Step 4.Run ng serve in the root folder of your app 🎉

      Copy command
      $ ng serve

      And voilà, everything should be running smoothly.

      Thanks for downloading
      Try and customize the app locally

      Extract the zip file and run the project like any Ionic app. Make sure to have Ionic CLI installed and open the terminal in the app root folder.

      Step 1. Run in root folder
      $ npm install
      Step 2. Start the app
      $ ionic serve

      Let us know if we can help and enjoy!

      Thanks for downloading
      Customize demos locally

      We have set up a trial so that you can try the demos locally.

      Extract the zip file and open the demo in your favorite browser. To install Mobiscroll in your project follow instructions from this page.


      Let us know if we can help and enjoy! 👍

      Thanks for downloading
      Customize demos locally

      Please extract the zip file and run the project like any Angular CLI app. Make sure to have the Angular CLI installed.

      For installation and usage, extract the zip file and open a terminal window and follow these steps.

      Step 1. Run in root folder
      $ npm install
      Step 2. Start the app
      $ ng serve --open

      Let us know if we can help and enjoy! 👍

      Thanks for downloading
      Customize demos locally

      We have set up a trial so that you can try the demos locally.

      The easiest way to get started is to follow the installation steps and by grabbing the code directly from the demo page. Let us know if we can help and enjoy! 👍

      You'll find a fully functional Kitchen-sink Ionic app in the zip file.

      Thanks for downloading
      Customize demos locally

      We have set up a trial so that you can try the demos locally.

      The demos are using Babel's in-browser ES6 and JSX transformer.
      Extract the zip file and open the demo in your browser. To install Mobiscroll in your project follow instructions from this page.


      Let us know if we can help and enjoy! 👍

      Customize & try this demo locally
      Sign in or start your free trial

      We have to set you up with a trial for this to run 👍

      Email address

      Need to update your password?
      Demos
      Theme Select
      Mobiscroll
      Material
      Material Dark
      iOS
      iOS Dark
      Windows
      Windows Dark
      Language Locale
      See other demos and change options
      Theme
      Locale
      See other demos