自定義支持上拉載入更多,下拉刷新,支持自由切換狀態【載入中,載入成功,載入失敗,沒網路等狀態】的控制項,拓展功能[支持長按拖拽,側滑刪除]可以選擇性添加 。具體使用方法,可以直接參考demo。 輕量級側滑刪除菜單,支持recyclerView,listView,直接嵌套item佈局即可使用,整個側滑菜 ...
- 自定義支持上拉載入更多,下拉刷新,支持自由切換狀態【載入中,載入成功,載入失敗,沒網路等狀態】的控制項,拓展功能[支持長按拖拽,側滑刪除]可以選擇性添加 。具體使用方法,可以直接參考demo。
- 輕量級側滑刪除菜單,支持recyclerView,listView,直接嵌套item佈局即可使用,整個側滑菜單思路是:跟隨手勢將item向左滑動
- 該庫已經用到了實際開發項目中,會持續更新並且修改bug。如果覺得可以,可以star一下,多謝支持!
- 感謝前輩大神們案例及開源分享精神。
- 一行代碼集成:compile 'org.yczbj:YCRefreshViewLib:2.5'
- 項目地址:https://github.com/yangchong211/YCRefreshView
- GitHub地址:https://github.com/yangchong211
-
- 1.1 支持上拉載入,下拉刷新,可以自定義foot底部佈局,支持添加多個自定義header頭部佈局。
- 1.2 支持切換不同的狀態,比如載入中[目前是ProgressBar,載入成功,載入失敗,載入錯誤等不同佈局狀態。當然也可以自定義這些狀態的佈局
- 1.3 支持複雜界面使用,比如有的頁麵包含有輪播圖,按鈕組合,橫向滑動,還有複雜list,那麼用這個控制項就可以搞定。
- 1.4 已經用於實際開發項目投資界,新芽,沙丘大學中……
- 1.5 輕量級側滑刪除菜單,直接嵌套item佈局即可使用,使用十分簡單。
- 1.6 支持插入或者刪除某條數據,支持CoordinatorLayout炫酷的效果
- 1.7 支持粘貼頭部的需求效果
- 1.8 RecyclerView實現條目Item拖拽排序與滑動刪除
- 1.9 更多內容可以直接看案例代碼
- 2.0 參考並借鑒了大量的優秀開源庫,由於後期業務需求發生變化,因此做了一些功能的延伸與定製。繼續完善並修改庫bug!!!已經用於實際開發中。
- 2.1 先來看看佈局,實際上只是在recyclerView基礎上做了大量拓展……
-
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ptr_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <!--RecyclerView控制項,支持添加頭部和底部view--> <android.support.v7.widget.RecyclerView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical|horizontal" android:clickable="true" android:focusable="true" /> <!--載入數據為空時的佈局--> <FrameLayout android:id="@+id/empty" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:focusable="true"/> <!--正在載入數據中的佈局--> <FrameLayout android:id="@+id/progress" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:focusable="true"/> <!--載入錯誤時的佈局:網路錯誤或者請求數據錯誤--> <FrameLayout android:id="@+id/error" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:focusable="true"/> </FrameLayout> </android.support.v4.widget.SwipeRefreshLayout>
- 3.1 首先在集成:compile 'org.yczbj:YCRefreshViewLib:2.5'
- 3.2 在佈局中:
recyclerView.setLayoutManager(new FullyGridLayoutManager(activity, 3)); adapter = new DouBookAdapter(activity); recyclerView.setAdapter(adapter); //載入更多 adapter.setMore(R.layout.view_recycle_more, new RecyclerArrayAdapter.OnMoreListener() { @Override public void onMoreShow() { if (NetworkUtils.isConnected()) { if (adapter.getAllData().size() > 0) { getTopMovieData(mType, adapter.getAllData().size(), adapter.getAllData().size() + 21); } else { adapter.pauseMore(); } } else { adapter.pauseMore(); Toast.makeText(activity, "網路不可用", Toast.LENGTH_SHORT).show(); } } @Override public void onMoreClick() { } }); //設置沒有數據 adapter.setNoMore(R.layout.view_recycle_no_more, new RecyclerArrayAdapter.OnNoMoreListener() { @Override public void onNoMoreShow() { if (NetworkUtils.isConnected()) { adapter.resumeMore(); } else { Toast.makeText(activity, "網路不可用", Toast.LENGTH_SHORT).show(); } } @Override public void onNoMoreClick() { if (NetworkUtils.isConnected()) { adapter.resumeMore(); } else { Toast.makeText(activity, "網路不可用", Toast.LENGTH_SHORT).show(); } } }); //設置錯誤 adapter.setError(R.layout.view_recycle_error, new RecyclerArrayAdapter.OnErrorListener() { @Override public void onErrorShow() { adapter.resumeMore(); } @Override public void onErrorClick() { adapter.resumeMore(); } }); //刷新 recyclerView.setRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { if (NetworkUtils.isConnected()) { getTopMovieData(mType , 0 , 30); } else { recyclerView.setRefreshing(false); Toast.makeText(activity, "網路不可用", Toast.LENGTH_SHORT).show(); } } });