下拉刷新之ScrollView--PullToRefreshScrollView

来源:互联网 发布:pdfexpert mac破解版 编辑:程序博客网 时间:2024/05/22 05:19

开发android的人基本都知道有一个下拉刷新的开源组件,基本都认为下拉刷新的都是ListView(今天就遇到了这样的人)。其实下拉刷新这是一个整套的开源组件。能够实现下拉的组件有:      

1,Listview

2,GridView

3,ScrollView

4,ExpandableListView

5,ListFragment

6,ViewPager

7,WebView

这一整套的下载地址:https://github.com/chrisbanes/Android-PullToRefresh

在我们的应用是适当的使用这些开源组件能够大大的提高我们用户体验,今天就简单的介绍下基于ScrollView的下拉刷新:PullToRefreshScrollView。
demo代码:
/******************************************************************************* * Copyright 2011, 2012 Chris Banes. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *******************************************************************************/package com.handmark.pulltorefresh.samples;import android.app.Activity;import android.os.AsyncTask;import android.os.Bundle;import android.widget.ScrollView;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;import com.handmark.pulltorefresh.library.PullToRefreshScrollView;public final class PullToRefreshScrollViewActivity extends Activity {PullToRefreshScrollView mPullRefreshScrollView;ScrollView mScrollView;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_ptr_scrollview);mPullRefreshScrollView = (PullToRefreshScrollView) findViewById(R.id.pull_refresh_scrollview);mPullRefreshScrollView.setOnRefreshListener(new OnRefreshListener<ScrollView>() {@Overridepublic void onRefresh(PullToRefreshBase<ScrollView> refreshView) {new GetDataTask().execute();}});mScrollView = mPullRefreshScrollView.getRefreshableView();}private class GetDataTask extends AsyncTask<Void, Void, String[]> {@Overrideprotected String[] doInBackground(Void... params) {// Simulates a background job.try {Thread.sleep(4000);} catch (InterruptedException e) {}return null;}@Overrideprotected void onPostExecute(String[] result) {// Do some stuff here// Call onRefreshComplete when the list has been refreshed.mPullRefreshScrollView.onRefreshComplete();super.onPostExecute(result);}}}

 

效果图:

 

                                             
3 2
原创粉丝点击