ionic2下拉刷新和上拉加载功能实现
2017-08-18 16:34
453 查看
先看代码:
.ts:
下拉刷新:
html:
ts:
doRefresh(refresher) {
//console.log('Begin async operation', refresher);
setTimeout(() => {
this.BindUserModule(); //绑定方法 这里面可以加自己的方法处理数据
console.log('Async operation has ended');
refresher.complete();
}, 1000);
官方文档:
无限滚动允许您在用户从页面的底部或顶部滚动指定的距离时执行操作。
当用户滚动到指定的距离时,将调用分配给无限事件的表达式。 当这个表达式完成任务时,它应该在无限滚动实例上调用complete()方法。
如果您的异步操作返回承诺,您可以在模板中使用waitFor方法。
参考网址:
https://ionicframework.com/docs/api/components/infinite-scroll/InfiniteScroll/
下拉刷新:
无限滚动允许您在用户从页面的底部或顶部滚动指定的距离时执行操作。
当用户滚动到指定的距离时,将调用分配给无限事件的表达式。 当这个表达式完成任务时,它应该在无限滚动实例上调用complete()方法。
注意:不要将ion-refresher包裹在* ngIf中。 它不会这样正常渲染。 请改用启用的属性来显示或隐藏刷新。
默认情况下,Ionic为用户所在的平台提供了最佳的拉动图标和刷新微调。 但是,您可以更改默认图标和微调框,以及通过向子离子再现内容组件添加属性,为每个状态添加文本。
参考:https://ionicframework.com/docs/api/components/refresher/Refresher/
<!--默认显示出来的数据--> <ion-list> <ion-item *ngFor="let i of items">{{i}}</ion-item> </ion-list> <!--上拉加载设置--> <ion-infinite-scroll (ionInfinite)="doInfinite($event)"> <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="加载更多。。。。"> </ion-infinite-scroll-content> </ion-infinite-scroll>
.ts:
export class InfinitePage { public items:any=[]; constructor(public navCtrl: NavController, public navParams: NavParams) { this.items=[] for (let i = 0; i < 10; i++) { this.items.push( this.items.length ); } } ionViewDidLoad() { console.log('ionViewDidLoad InfinitePage'); } doInfinite(infiniteScroll) { console.log('Begin async operation'); setTimeout(() => { for (let i = 0; i < 10; i++) {//相当于是设置每次上拉加载显示的加载的数据条数美上拉加载一次加载几条数据显示 this.items.push( this.items.length ); } console.log('Async operation has ended'); infiniteScroll.complete(); }, 500); }
下拉刷新:
html:
<ion-refresher (ionRefresh)="doRefresh($event)"> <ion-refresher-content pullingIcon="arrow-dropdown" pullingText="Pull to refresh" refreshingSpinner="circles" refreshingText="刷新..."> </ion-refresher-content> </ion-refresher> <!--默认显示出来的数据--> <ion-list> <ion-item *ngFor="let i of items">{{i}}</ion-item> </ion-list>
ts:
doRefresh(refresher) {//请求数据的请求方法可以写在这个函数里面 console.log('Begin async operation', refresher); setTimeout(() => { this.items = [];//items是后台返回的数据 for (var i = 0; i < 5; i++) {//下拉刷新一次刷新几条数据显示(下拉刷新后当前页面显示几条数据) this.items.push( this.items.length ); } console.log('Async operation has ended'); refresher.complete(); }, 2000); }
doRefresh(refresher) {
//console.log('Begin async operation', refresher);
setTimeout(() => {
this.BindUserModule(); //绑定方法 这里面可以加自己的方法处理数据
console.log('Async operation has ended');
refresher.complete();
}, 1000);
官方文档:
InfiniteScroll
无限滚动允许您在用户从页面的底部或顶部滚动指定的距离时执行操作。当用户滚动到指定的距离时,将调用分配给无限事件的表达式。 当这个表达式完成任务时,它应该在无限滚动实例上调用complete()方法。
Usage
<ion-content> <ion-list> <ion-item *ngFor="let i of items">{{i}}</ion-item> </ion-list> <ion-infinite-scroll (ionInfinite)="doInfinite($event)"> <ion-infinite-scroll-content></ion-infinite-scroll-content> </ion-infinite-scroll> </ion-content>
@Component({...}) export class NewsFeedPage { items = []; constructor() { for (let i = 0; i < 30; i++) { this.items.push( this.items.length ); } } doInfinite(infiniteScroll) { console.log('Begin async operation'); setTimeout(() => { for (let i = 0; i < 30; i++) { this.items.push( this.items.length ); } console.log('Async operation has ended'); infiniteScroll.complete(); }, 500); } }
waitFor
method of InfiniteScroll
如果您的异步操作返回承诺,您可以在模板中使用waitFor方法。参考网址:
https://ionicframework.com/docs/api/components/infinite-scroll/InfiniteScroll/
下拉刷新:
无限滚动允许您在用户从页面的底部或顶部滚动指定的距离时执行操作。
当用户滚动到指定的距离时,将调用分配给无限事件的表达式。 当这个表达式完成任务时,它应该在无限滚动实例上调用complete()方法。
注意:不要将ion-refresher包裹在* ngIf中。 它不会这样正常渲染。 请改用启用的属性来显示或隐藏刷新。
Usage
<ion-content> <ion-refresher (ionRefresh)="doRefresh($event)"> <ion-refresher-content></ion-refresher-content> </ion-refresher> </ion-content>
@Component({...}) export class NewsFeedPage { doRefresh(refresher) { console.log('Begin async operation', refresher); setTimeout(() => { console.log('Async operation has ended'); refresher.complete(); }, 2000); } }
默认情况下,Ionic为用户所在的平台提供了最佳的拉动图标和刷新微调。 但是,您可以更改默认图标和微调框,以及通过向子离子再现内容组件添加属性,为每个状态添加文本。
<ion-content> <ion-refresher (ionRefresh)="doRefresh($event)"> <ion-refresher-content pullingIcon="arrow-dropdown" pullingText="Pull to refresh" refreshingSpinner="circles" refreshingText="Refreshing..."> </ion-refresher-content> </ion-refresher> </ion-content>
参考:https://ionicframework.com/docs/api/components/refresher/Refresher/
相关文章推荐
- Ionic如何实现下拉刷新与上拉加载功能
- Ionic如何实现下拉刷新与上拉加载功能
- Ionic实现页面下拉刷新(ion-refresher)功能代码
- 简单实现WaveSwipeRefreshLayout+RecyclerView的上拉加载下拉刷新的功能
- android SwipeRefreshLayout与ListView结合实现下拉刷新,加载功能
- 带有上拉加载下拉刷新和可滑动删除功能的ListView的简单实现
- 自定义上拉加载下拉刷新控件,从而实现滑动到底部时上拉加载更多的功能
- XRecyclerView:实现下拉刷新、滚动到底部加载更多以及添加header功能的RecyclerView
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- 小程序 实现上拉加载更多 和下拉刷新的功能
- vue基于mint-ui组件loadmore实现上拉加载更多,下拉刷新功能
- 为Recycler添加下拉刷新,上拉加载更多功能(简单实现)
- 使用PullToRefresh实现下拉刷新和分页加载功能
- 安卓listView实现下拉刷新上拉加载滑动仿QQ的删除功能
- Android实现上拉加载更多以及下拉刷新功能(ListView)
- 安卓listView实现下拉刷新上拉加载滑动仿QQ的删除功能
- Android下拉刷新库,利用viewdraghelper实现,集成了下拉刷新,底部加载更多,数据初始加载显示loading等功能
- 实现侧滑、标题栏的滑动、上拉加载更多,下拉刷新功能
- 微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
- Android 自定义ListView 实现下拉刷新 上拉加载功能