进阶篇-用户界面:6.android studio使用github开源库实现下拉刷新

说实话,这是我第一次这么正儿八经的用github开源库,之前一直在听一些大神对这个世界级的开源库赞不绝口,今天终于体会到了。由于下拉刷新的类库是在eclipse下开发完成的,而eclipse如何使用如果导入网上的教程都非常详细。昨天我试了半天发现由于自己对android studio还不是很熟悉,所以引用类库的时候发现无从下手。但是今天早晨起来我唯一想做的事就是一定要实现这个下拉刷新的效果。我去网上找android studio导入类库的教程,导入PullToRefresh的教程,但是网上用的都是旧版的android studio,操作起来非常繁琐,对于我这样正在摸索的人很难理解,而且,我用的是最新版的android studio,所以网上那些教程并不是特别适合我。所以没有办法只能自己摸索了。还好花了一个小时左右,终于导入类库并且成功实现了下拉刷新的效果。虽然还有一些小问题,比如说我并不明白为什么在xml里面添加PullToRefresh的空间,里面的属性width height id啊什么的都没有代码提示,导致我自己往上敲代码的时候有些心虚。当然,这无伤大雅,以后再研究到底为什么没有代码提示。

新版android studio导入类库并使用,实现下拉刷新。(我感觉其他类库也应该类似)

android studio版本:

教程开始:

(1)在github官网下载PullToRefresh的源码。源项目地址:https://github.com/chrisbanes/Android-PullToRefresh

(2)在android studio中导入原项目的类库

file->new->Import Module->选择文件->选择Library文件夹、extras里面的PullToRefreshViewPager和PullToRefreshListFragment。

导入之后在你的项目里会出现这三个库,由于新版的as很为开发者着想,所以gradle不用自己改,它全自动同步!

(3)右键项目->Open Module Settings->左侧选择app(也就是你自己的项目)->右侧选择dependencies->点下面的小加号->选择Module Dependency->把我们刚才导入的类库全部选择进去。

(4)如果没有出错,那么PullToRefresh类库就完全可以使用了。

(5)demo源码:

MainActivity.java:

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private PullToRefreshListView pl;
    private ArrayAdapter<String> adaper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        pl = (PullToRefreshListView)findViewById(R.id.l);
        List<String> arr = new ArrayList<String>();
        arr.add("test1");
        arr.add("test2");
        arr.add("test3");
        arr.add("test4");
        arr.add("test5");
        adaper = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arr);//初始化数据

        pl.setAdapter(adaper);
        pl.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                 new AsyncTask<Void,Void,Void>(){

                     @Override
                     protected Void doInBackground(Void... voids) {//后台执行操作,此处用延时模拟同步过程
                         try {
                             Thread.sleep(3000);
                         } catch (InterruptedException e) {
                             e.printStackTrace();
                         }
                         return null;
                     }

                     @Override
                     protected void onPostExecute(Void aVoid) {//与数据库交互,添加数据
                         super.onPostExecute(aVoid);
                         adaper.addAll("hello","success");
                         pl.onRefreshComplete();   //通知同步完成
                     }
                 }.execute();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {

            }
        });
    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.lzc.myapplication.MainActivity">

    <com.handmark.pulltorefresh.library.PullToRefreshListView
        android:id="@+id/l"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

    </com.handmark.pulltorefresh.library.PullToRefreshListView>

</LinearLayout>

效果图:

时间: 2024-12-23 13:09:39

进阶篇-用户界面:6.android studio使用github开源库实现下拉刷新的相关文章

Android自定义控制(五)仿新浪微博的下拉刷新

网上有很多很有名的开源框架,这里就来拉拉PullToRefresh这个框架,也就是我们平时用的下拉刷新啦,当然你问我这个有什么用啊?别人已经写好了,这里主要是学习以及练习,练习的次数多了,一切就顺其自然的会了. 废话少说,先上图,再上代码: 1.要想实现下拉刷新功能必须要有个下拉刷新的布局,是吧? <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="htt

Android 自定义对话框,进度条,下拉刷新等

这个demo集合了自定义对话框,进度条,下拉刷新以及popup弹出框等.是学习了网上开源项目后,抽取集合了常用对话框,进度条,下拉刷新以及popup弹出框等.现在结构目录简单,更易于学习和扩展使用.注释都卸载代码.下面进行简单的介绍以及部分代码展示. 本文demo下载:点击 1.整体实现的效果图 2.项目结构图 这上面项目结构图也是一目了然,有什么功能展示.大家也看到了,这上面类有点多,如果全部贴出来,不大可能,有兴趣下载本文源码. 3.看看基础类BaseActivity 我就贴一下基础类,还有

android studio 打开github开源代码

1.最近下载的开源代码全是github来的,一直用eclipse开发,对于android studio来说是全新的 2.在eclipse导入一个工程那是so eassy, import选择一下就可以. 3.到了android studio里面,import 那就费多了. 导入几次都跟死了一样,只看到进度条动,其实Android Studio是在下载文件Gradle 尝试: 全新建一个Hello工程,搞定,没有任何问题,编译成功 工程的目录就是上面所示 打开工程,发现有几个地方跟下载的github

Android第三十七期 - 视觉动画下拉刷新

代码已经整理好,效果如下如图: 地址:http://down.51cto.com/data/2048012

Android第二十三期 - 256k的ListView下拉刷新和滚动加载数据

代码已经

Android UI- PullToRrefresh自定义下拉刷新动画

Android UI- PullToRrefresh自定义下拉刷新动画 如果觉得本文不错,麻烦投一票,2014年博客之星投票地址:http://vote.blog.csdn.net/blogstar2014/details?username=wwj_748#content 本篇博文要给大家分享的是如何使用修改开源项目PullToRrefresh下拉刷新的动画,来满足我们开发当中特定的需求,我们比较常见的一种下拉刷新样式可能是以下这种: 就是下拉列表的时候两个箭头上下翻转,更改日期文本和刷新状态,

Android 怎么实现支持所有View的通用的下拉刷新控件

转载请标明出处: http://blog.csdn.net/u010386612/article/details/51372696 下拉刷新对于一个app来说是必不可少的一个功能,在早期大多数使用的是chrisbanes的PullToRefresh,或是修改自该框架的其他库.而到现在已经有了更多的选择,github上还是有很多体验不错的下拉刷新. 而下拉刷新主要有两种实现方式: 1. 在ListView中添加header和footer,监听ListView的滑动事件,动态设置header/foo

Android 自定义ListView实现底部分页刷新与顶部下拉刷新

在项目开发中,由于数据过大时,需要进行分页加载或下拉刷新,来缓解一次性加载的过长等待.本篇博文实例讲解通过自定义的ListView实现底部分页加载和顶部下拉刷新的效果. 其效果图: 一.ListView 底部分页加载 整个底部分页加载,主要分一下几步: 1.加载底部自定义View; 2.响应OnScrollListener监听事件,onScroll方法记录最后可见的View Item以及整个totalItemCount.当onScrollStateChanged状态改变时, 当滑动到底端,并滑动

Android实现RecyclerView自定义列表、点击事件以及下拉刷新

Android使用RecyclerView 1. 什么是RecyclerView RecyclerView 是 Android-support-v7-21 版本中新增的一个 Widgets,官方对于它的介绍则是:RecyclerView 是 ListView 的升级版本,更加先进和灵活. 简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式.它被作为ListView和GridView控件的继承者,在最新的support-V7版本中提供支持. 2.