开发者可以使用 PullToRefresh
对各种控件实现下拉刷新或者上拉加载以及可以自定义刷新和加载部分的视图。
目前支持:ScrollView
,ListView
,WebView
,RecyclerView
。
效果图:
基本用法
1、添加 Gradle 依赖
compile 'com.jwenfeng.pulltorefresh:library:1.0.3'
2、布局文件
注意:内容控件 有且只能有一个,目前支持:ScrollView
,ListView
,WebView
,RecyclerView
。
<?xml version="1.0" encoding="utf-8"?> <com.jwenfeng.library.pulltorefresh.PullToRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mpull" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/list" ></ListView> </com.jwenfeng.library.pulltorefresh.PullToRefreshLayout>
3、在Activity或者Fragment中使用
下面的适配器就是为了模拟数据所写的 重要的方法在用==标记
public class MainActivity extends AppCompatActivity { private List<String> data=new ArrayList<String>(); PullToRefreshLayout mpull; private ListView list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //查找控件 mpull= (PullToRefreshLayout) findViewById(R.id.mpull); list = (ListView) findViewById(R.id.list); //模拟几条数据 for (int i = 1; i <10; i++){ data.add("你好"+i); } //添加适配器 Myadpader myadpader = new Myadpader(); list.setAdapter(myadpader); // ====================================================================== mpull.setRefreshListener(new BaseRefreshListener() { @Override public void refresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { // 结束刷新 mpull.finishRefresh(); } }, 2000); } @Override public void loadMore() { new Handler().postDelayed(new Runnable() { @Override public void run() { // 结束加载更多 mpull.finishLoadMore(); } }, 2000); } }); }
//============================================================================== public class Myadpader extends BaseAdapter{ @Override public int getCount() { return data.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View v = View.inflate(MainActivity.this, R.layout.zidingyi, null); TextView name=v.findViewById(R.id.name); name.setText(data.get(i)); return v; } } }
最后附上一个网址里面写的比较详细:
http://www.jianshu.com/p/0f5d0991efdc