Ionicのpull to refresh(aka "Refresher") をページ全体ではなく要素内に実装することは可能ですか?
これは、ページ内のスクロール可能なセクションが小さいアプリを設計するときに役立ちます。現在の動作では、スクロール可能な要素だけでなく、ページ全体がプルダウンされます。
あなたはイオンスクロールを使用して行うことができます。以下のサンプルコード:
<ion-content>
<div class="row">
<p class="col-sm-12">This text will display on top</p>
</div>
<div class="row">
<div class="col-sm-6">
<ion-scroll>
<ion-refresher>
</ion-refresher>
<p class="col-sm-12">This text will be under ion-refresher pull refresh</p>
</ion-scroll>
</div>
<div class="col-sm-6">
<p class="col-sm-12">This text will display on center right</p>
</div>
</div>
<div class="row">
<p class="col-sm-12">This text will display on bottom</p>
</div>
<ion-content>
また、画像を確認してください。青色のコンテンツ部分のみがイオンリフレッシャーの下になります。他のセクションはリフレッシャーの外になります。
実際にこれを行うことができますが、それは本当に素晴らしいソリューションよりも回避策です。 ion-refresher
コンポーネントは、ion-content
でのみ使用できます。
したがって、ページに別のion-content
を配置することができます。
<ion-content padding>
<div>
<!-- Your other content -->
</div>
<!-- Additional ion-content -->
<ion-content>
<!-- Your inline ion-refresher -->
<ion-refresher></ion-refresher>
</ion-content>
</ion-content>
ion-refresher
コンポーネントは、ion-content
で生成されるion-refresher
コンテナの最後に配置されるため、すべてのscroll-content
を新しいion-content
に配置する必要があります。
ただ注意してくださいあなたができないことページ全体ion-refresher
をページ内ion-refresher
で使用するには、ページ内ion-refresher
をプルしようとすると両方が実行されるためです:
<ion-content padding>
<ion-refresher></ion-refresher>
<!-- Your other content -->
<ion-content>
<ion-refresher></ion-refresher>
</ion-content>
</ion-content>
このような意味ですか?
<div id='smaller-scrollable-section'>
<ion-content>
<ion-refresher (ionRefresh)="doRefresh($event)">
<ion-refresher-content></ion-refresher-content>
</ion-refresher>
<ion-list>
<ion-item *ngFor="let item of collection">
</ion-item>
</ion-list>
<ion-infinite-scroll (ionInfinite)="fetchMore($event)">
<ion-infinite-scroll-content></ion-infinite-scroll-content>
</ion-infinite-scroll>
</ion-content>
</div>
セクションでion-scroll内部ion-contentを試してみましたか?