国外源码精品-Android-PullToRefresh 简介与DEMO导入
原文地址:http://blog.csdn.net/harvic880925/article/details/17139233
PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED
一、介绍
Pull To Refresh Views for Android
This project aims to provide a reusable Pull to Refresh widget for Android. It was originally based on Johan Nilsson's library (mainly for graphics, strings and animations), but these have been replaced since.
- Supports both Pulling Down from the top, and Pulling Up from the bottom (or even both).
- Animated Scrolling for all devices.
- Over Scroll supports for devices on Android v2.3+.
- Currently works with:
- ListView
- ExpandableListView
- GridView
- WebView
- ScrollView
- HorizontalScrollView
- ViewPager
 
- Integrated End of List Listener for use of detecting when the user has scrolled to the bottom.
- Maven Support.
- Indicators to show the user when a Pull-to-Refresh is available.
- Support for ListFragment!
- Lots of Customisation options!
Repository at https://github.com/chrisbanes/Android-PullToRefresh.
附源码截图:
ListView ExpandableListView
                       
 
GridView WebView
                      
ScrollView Horizontal ScrollView
                                      
ViewPager ListView Fragment
                                    
WebView Advanced ListView in ViewPager
                                   
二、DEMO导入
很多人看到有好源码,但是在使用时碰到了问题。在此简单介绍一下,希望能够对那些不会的童鞋们有所帮助。
       首先下载源码,源码地址:https://github.com/chrisbanes/Android-PullToRefresh。
下载完源码之后,解压。在Android-PullToRefresh-master文件夹下,我们会看到还有三个文件夹:extras,
library,sample。其中sample就是作者为我们提供的Demo,library是我们在使用Sample必须用到的jar。extras中是使用ListFragment和ViewPage用到的jar。讲解完目录后现在开始导入了。
1. 导入library:导入很简单,如图,点击finish即可。
导入之后没有问题。OK!
     2. 同样导入extras中的PullToRefreshListFragment和PullToRefreshViewPager工程。切记:分别导入。
        如图:
导入之后,你会发现工程报错了,很简单,没有关联libraray。右键工程--选择Properties,打开之后会发现有个红色的X,这就是报错的原因。改了就可以。
选中红色的报错的library,点击Remove,再点击Add,将Libarary添加上即可!如图:
 
同理将PullToRefreshViewPager工程的library也修改好。
 
3. 导入Sample工程,同时修改library。如图:
 
至此,工程全部导入,错误全部解决。
运行一下,看是否能够正常运行到手机上。接下来就可以慢慢研究着精品源码吧!
感谢原作者详细的讲解,解决了我的问题!
三、DEMO导入出现问题及解决
一、运行报错:Unable to execute dex: Multiple dex files define Lcom/my/cop/miles/R$anim
导致原因:
1、在ADT编译器和SDK的工具有差异或是版本不一致时常会出现
2、引用的两个子项目有相同的包名也会导致这个问题(引用多余的jar包,包出现冲突)
解决方案:
Eclipse ——> Project ——> 去掉自动构建(Build Automatically)——> 选择project中的clear ——> 选择project中的Build Project ——>启动自动构建(Build Automatically)
Android-pulltorefresh是一个一个滑动刷新的ListView,用户将内容下滑,就会有新的结果呈现,而且可以呈现反弹效果,非常cool。
使用
我们在用到这个类的activity的layout中加上如下代码:
| 1 2 3 4 5 6 | <!--The PullToRefreshListView replaces a standard ListView widget. --> <com.markupartist.android.widget.PullToRefreshListView     android:id="@+id/android:list"     android:layout_height="fill_parent"     android:layout_width="fill_parent"     /> | 
在activity中加入下面的代码:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // Set a listener to be invoked when the list should be refreshed. ((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() {     @Override     public void onRefresh() {         // Do work to refresh the list here.         new GetDataTask().execute();     } }); private class GetDataTask extends AsyncTask<Void, Void, String[]> {     ...     @Override     protected void onPostExecute(String[] result) {         mListItems.addFirst("Added after refresh...");         // Call onRefreshComplete when the list has been refreshed.         ((PullToRefreshListView) getListView()).onRefreshComplete();         super.onPostExecute(result);     } } | 
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号