Android 下拉重新整理上拉載入 PullToRefresh
阿新 • • 發佈:2019-02-20
開發者可以使用 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