here is a simple way to do it:
working plunker: https://plnkr.co/edit/uJ3n8XedvCCdeUHXKpwX?p=preview
first, add hammerjs to your module:
import { HammerGestureConfig, HAMMER_GESTURE_CONFIG } from '@angular/platform-browser';
provide it in providers
providers: [{
provide: HAMMER_GESTURE_CONFIG,
useClass: HammerGestureConfig
}]
sample module:
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
FormsModule,
ReactiveFormsModule,
MaterialModule,
],
declarations: [TabsOverviewExample],
bootstrap: [TabsOverviewExample],
providers: [{
provide: HAMMER_GESTURE_CONFIG,
useClass: HammerGestureConfig
}]
})
export class PlunkerAppModule {}
then build your component like this:
import {Component, AfterViewInit, ViewChild, ViewChildren} from '@angular/core';
import { MdTabGroup, MdTab } from '@angular/material';
@Component({
selector: 'tabs-overview-example',
template:`
<md-tab-group [selectedIndex]="selected" (swipeleft)="swipe($event.type)" (swiperight)="swipe($event.type)">
<md-tab label="Tab 1"><div class="content">Content 1</div></md-tab>
<md-tab label="Tab 2"><div class="content">Content 2</div></md-tab>
<md-tab label="Tab 3"><div class="content">Content 3</div></md-tab>
<md-tab label="Tab 4"><div class="content">Content 4</div></md-tab>
<md-tab label="Tab 5"><div class="content">Content 5</div></md-tab>
</md-tab-group>`,
styles:['.content{ height: 500px; background-color: yellow;}']
})
export class TabsOverviewExample implements AfterViewInit{
@ViewChild(MdTabGroup) group;
@ViewChildren(MdTab) tabs;
tab_num = 0;
selected = 0;
SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight' };
number_tabs
ngAfterViewInit(){
this.tab_num = this.tabs.length
console.log(this.group)
}
swipe(eType){
console.log(eType);
if(eType === this.SWIPE_ACTION.LEFT && this.selected > 0){
console.log("movin left")
this.selected--;
}
else if(eType === this.SWIPE_ACTION.RIGHT && this.selected < this.tab_num){
console.log("movin right")
this.selected++;
}
console.log(this.selected)
}
}