cordova에서 스마트 폰 앱 개발 4
6694 단어 ionic
Ionic에서 기능 만들기
ionic만의 기능을 몇 가지 픽업해 작성해 본다
h tps // 이오니 cf 라메를 rk. 이 m / jp / cs / api / s에서 s
h tps // 이오니 cf 라메를 rk. 코 m / jp / 두 cs / 아피 / 레오 r
h tps // 이오니 cf 라메를 rk. 코 m / jp / 드 cs / 아피 / 인후에서 - sc rotl
슬라이드
마지막으로 만든 tab4에 슬라이더를 포함해보십시오.
\src\app\tab4\tab4.page.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-tab4',
template: `
<ion-slides pager="true" [options]="slideOpts" style="width:100%;height:100%">
<ion-slide>
<h1>Slide 1</h1>
</ion-slide>
<ion-slide>
<h1>Slide 2</h1>
</ion-slide>
<ion-slide>
<h1>Slide 3</h1>
</ion-slide>
</ion-slides>
`,
styleUrls: ['./tab4.page.scss'],
})
export class Tab4Page {
slideOpts = {
initialSlide: 0,
speed: 400
};
constructor() {}
}
style="width:100%;height:100%"를 지정하지 않으면 이상하게 좁거나, 2 페이지째가 보이고 버리거나 하므로 주의
initialSlide: 0 으로 초기 페이지를 지정할 수 있다
reorder
새로 tab5를 만들고 재정렬을 통합해 봅니다.
※tab5를 작성하는 순서는 생략
\src\app\tab5\tab5.page.ts
import { Component } from '@angular/core';
import { IonReorderGroup } from '@ionic/angular';
@Component({
selector: 'app-tab5',
template: `
<ion-reorder-group (ionItemReorder)="doReorder($event)" disabled="false">
<ion-item>
<ion-reorder slot="start"></ion-reorder>
<ion-label>
Item 1
</ion-label>
</ion-item>
<ion-item>
<ion-reorder slot="start"></ion-reorder>
<ion-label>
Item 2
</ion-label>
</ion-item>
<ion-item>
<ion-reorder slot="start"></ion-reorder>
<ion-label>
Item 3
</ion-label>
</ion-item>
<ion-item>
<ion-reorder slot="start"></ion-reorder>
<ion-label>
Item 4
</ion-label>
</ion-item>
<!-- Custom reorder icon end items -->
<ion-item>
<ion-reorder slot="start"></ion-reorder>
<ion-label>
Item 5
</ion-label>
</ion-item>
<ion-item>
<ion-reorder slot="start"></ion-reorder>
<ion-label>
Item 6
</ion-label>
</ion-item>
</ion-reorder-group>
`,
styleUrls: ['./tab5.page.scss'],
})
export class Tab5Page {
constructor() { }
doReorder(event) {
event.detail.complete();
}
}
event.detail.complete(); 이벤트를 이용할 때의 약속
infinite-scroll
※infinite-scroll 는 tab 내에서 이용하면 읽기 이벤트가 발생하지 않았기 때문에, 별도 페이지로서 작성
우선 페이지 작성
C:\cordova_app\helloIonic>ionic g
? What would you like to generate? page
? Name/path of page: scroll
> ng.cmd generate page scroll
CREATE src/app/scroll/scroll.module.ts (543 bytes)
CREATE src/app/scroll/scroll.page.html (125 bytes)
CREATE src/app/scroll/scroll.page.spec.ts (691 bytes)
CREATE src/app/scroll/scroll.page.ts (256 bytes)
CREATE src/app/scroll/scroll.page.scss (0 bytes)
UPDATE src/app/app-routing.module.ts (459 bytes)
[OK] Generated page!
작성한 페이지에 infinite-scroll 을 포함해 간다
\src\app\scroll\scroll.page.ts
import { Component, ViewChild } from '@angular/core';
import { IonInfiniteScroll } from '@ionic/angular';
@Component({
selector: 'app-scroll',
templateUrl: 'scroll.page.html',
styleUrls: ['scroll.page.scss'],
})
export class ScrollPage {
@ViewChild(IonInfiniteScroll) infiniteScroll: IonInfiniteScroll;
dataList:any;
constructor() {
this.dataList = [];
console.log('init');
for (let i = 0; i < 25; i++) {
this.dataList.push("Item number "+this.dataList.length);
}
}
loadData(event) {
console.log('event');
setTimeout(() => {
console.log('Done');
for (let i = 0; i < 25; i++) {
this.dataList.push("Item number "+this.dataList.length);
}
event.target.complete();
if (this.dataList.length == 1000) {
event.target.disabled = true;
}
}, 500);
}
}
constructor 에서는 초기 표시분 25행을 dataList 로서 정의
loadData 는 말미까지 스크롤 했을 경우의 재읽기 이벤트
초기 표시와 마찬가지로 dataLlist에 25 행을 추가합니다.
1000행에 도달하면 스크롤 이벤트를 비활성화합니다.
\src\app\scroll\scroll.page.html
<ion-header>
<ion-toolbar>
<ion-title>scroll</ion-title>
</ion-toolbar>
</ion-header>
<ion-content overflow-scroll='false'>
<ion-list>
<ion-item *ngFor="let item of dataList">
<ion-label>{{item}}</ion-label>
</ion-item>
</ion-list>
<ion-infinite-scroll threshold="100px" (ionInfinite)="loadData($event)">
<ion-infinite-scroll-content
loadingSpinner="bubbles"
loadingText="Loading more data...">
</ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>
ion-list 가 리스트 표시부, ion-infinite-scroll 가 이벤트 정의
*ngFor="let item of dataList"로 dataList 를 item 으로 정의해, 존재하는 분 루프 시킨다
{{item}}에서 데이터 바인딩됩니다. 요소가 있으면 {{item.value}}로 참조 할 수 있습니다.
끝까지 가면 로드 이벤트가 발생하고 행이 추가됩니다.
cordova에서 스마트 폰 앱 개발 5
Reference
이 문제에 관하여(cordova에서 스마트 폰 앱 개발 4), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/flour_planaria/items/3312cedc3cf435e4c826텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)