Android RecyclerView設置下拉刷新的實現方法
1 集成 SwipeRefreshLayout
1.1 xml布局文件中使用
<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/refresh" android:layout_width = "match_parent" android:layout_height = "match_parent" > <android.support.v7.widget.RecyclerView android:id = "@+id/rv_list" android:layout_width = "match_parent" android:layout_height = "match_parent" android:background = "#FF504F4F" /> </android.support.v4.widget.SwipeRefreshLayout >
1.2 設置下拉刷新樣式
SwipeRefreshLayout swipeRefreshView = (SwipeRefreshLayout) findViewById(R.id.refresh); // 設置顏色屬性的時候一定要注意是引用了資源文件還是直接設置16進制的顏色,因為都是int值容易搞混 // 設置下拉進度的背景顏色,默認就是白色的 swipeRefreshView.setProgressBackgroundColorSchemeResource(android.R.color.white); // 設置下拉進度的主題顏色 swipeRefreshView.setColorSchemeResources(R.color.colorAccent, R.color.colorPrimary, R.color.colorPrimaryDark);
1.3 設置下拉刷新加載監聽
final Handler handler = new Handler(); // 下拉時觸發SwipeRefreshLayout的下拉動畫,動畫完畢之后就會回調這個方法 swipeRefreshView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { // 開始刷新,設置當前為刷新狀態 //swipeRefreshLayout.setRefreshing(true); // 這里是主線程 // 一些比較耗時的操作,比如聯網獲取數據,需要放到子線程去執行 new Thread(){ @Override public void run () { super.run(); //同步加載網絡數據 //加載數據 完畢后 關閉刷新狀態 切回主線程 handler.postDelayed(new Runnable() { @Override public void run() { // 加載完數據設置為不刷新狀態,將下拉進度收起來 swipeRefreshView.setRefreshing(false); } }, 100); } }.start(); } });
如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。