国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android RecyclerView側滑菜單,滑動刪除,長按拖拽,下拉刷新上拉加載

2019-12-12 03:32:19
字體:
來源:轉載
供稿:網(wǎng)友

本文介紹的庫中的側滑效果借鑒自SwipeMenu,并對SipwMenu的源碼做了修改與Bug修復,然后才開發(fā)出的SwipeRecyclerView。

  • 需要說明的是,本庫沒有對RecyclerView做大的修改,只是ItemView的封裝。看起來是對RecyclerView的修改,其實僅僅是為RecyclerView添加了使用的方法API而已。
  • 本庫已經(jīng)更新了三個版本了,會一直維護下去,根據(jù)小伙伴的要求,以后也會添加一些其它功能。

SwipeRecyclerView將完美解決這些問題:

  • 以下功能全部支持:豎向ListView、橫向ListView、Grid、StaggeredGrid四種形式。
  • RecyclerView 左右兩側 側滑菜單。
  • 菜單橫向排布、菜單豎向排布。
  • RecyclerView長按拖拽Item。
  • RecyclerView側滑刪除item。
  • 指定RecyclerView的某一個Item不能滑動刪除或長按拖拽。
  • 某一個Item顯示的不同的菜單(類似QQ)。
  • 用SwipeMenuLayout在任何地方都可以實現(xiàn)你自己的側滑菜單。
  • 使用SwipeRecyclerView下拉刷新、自動加載更多。
  • 可以和ViewPager嵌套使用(兼容滑動沖突)。

引用方法

AndroidStudio使用Gradle構建添加依賴(推薦)

compile 'com.yanzhenjie:recyclerview-swipe:1.0.2'

Or Maven:

<dependency> <groupId>com.yanzhenjie</groupId> <artifactId>recyclerview-swipe</artifactId> <version>1.0.2</version> <type>pom</type></dependency>

我在開發(fā)SwipeRecyclerView時引用的RecyclerView版本如下:

compile 'com.android.support:recyclerview-v7:23.4.0'

效果圖

gif有一些失真,且網(wǎng)頁加載速度慢,可以[下載demo的apk][3]看效果。

側滑菜單

  • 左右兩側都有菜單,主動調(diào)出第幾個菜單或者手指滑動出現(xiàn)。
  • 根據(jù)ViewType某一個Item顯示的不同的菜單(類似QQ)

<兩側側滑菜單

不同的Item不同的菜單

和ViewPager嵌套 下拉刷新、自動加載更多

  • 和ViewPager嵌套使用,兼容了滑動沖突。
  • 可以和任何下拉刷新的框架結合,滑動到底部自動加載更多。

和ViewPager嵌套使用 

下拉刷新加載更多

長按拖拽 側滑菜單結合使用

  • 一直按住Item進行拖拽排序,支持List、Grid形式。
  • 長按拖拽并且和側滑菜單結合使用。

List拖拽排序、菜單 

Grid拖拽排序、菜單

直接滑動刪除 長按拖拽Item排序

  • 側滑直接刪除,也可以長按拖拽排序。
  • 可以指定某個Item不能被側滑刪除、不能被長按拖拽。

側滑刪除 

指定某一個不能拖拽、滑動刪除

豎型菜單 用自定義布局實現(xiàn)自己的菜單

  • 給菜單設置排列方向,支持橫向、豎向。
  • 開發(fā)者用庫中的SwipeMenuLayout開發(fā)自己的側滑菜單。

菜單排列方向 

自定義菜單

使用介紹

這里列出關鍵實現(xiàn),具體請參考demo,或者加最上面的交流群一起討論。 更多教程請進入我的博客查看。

啟用SwipeReyclerView的長按Item拖拽功能和側滑刪除功能

recyclerView.setLongPressDragEnabled(true);// 開啟長按拖拽recyclerView.setItemViewSwipeEnabled(true);// 開啟滑動刪除。recyclerView.setOnItemMoveListener(onItemMoveListener);// 監(jiān)聽拖拽和側滑刪除,更新UI和數(shù)據(jù)。

添加Item側滑菜單

側滑菜單支持自動打開某個Item的菜單,并可以指定是左邊還是右邊的:

// 打開第一個Item的左側菜單。recyclerView.openLeftMenu(0);// 打開第一個Item的右側菜單。recyclerView.openRightMenu(0);

第一步,引用自定義View:SwipeMenuReyclerView:

<com.yanzhenjie.recyclerview.swipe.SwipeMenuRecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior" />

第二步,設置菜單創(chuàng)建器、菜單點擊監(jiān)聽:

SwipeMenuRecyclerView swipeMenuRecyclerView = findViewById(R.id.recycler_view);// 設置菜單創(chuàng)建器。swipeMenuRecyclerView.setSwipeMenuCreator(swipeMenuCreator);// 設置菜單Item點擊監(jiān)聽。swipeMenuRecyclerView.setSwipeMenuItemClickListener(menuItemClickListener);

第三步,菜單創(chuàng)建器創(chuàng)建菜單:

/** * 菜單創(chuàng)建器。在Item要創(chuàng)建菜單的時候調(diào)用。 */private SwipeMenuCreator swipeMenuCreator = new SwipeMenuCreator() { @Override public void onCreateMenu(SwipeMenu swipeLeftMenu, SwipeMenu swipeRightMenu, int viewType) {  SwipeMenuItem addItem = new SwipeMenuItem(mContext)   .setBackgroundDrawable(R.drawable.selector_green)// 點擊的背景。   .setImage(R.mipmap.ic_action_add) // 圖標。   .setWidth(size) // 寬度。   .setHeight(size); // 高度。  swipeLeftMenu.addMenuItem(addItem); // 添加一個按鈕到左側菜單。  SwipeMenuItem deleteItem = new SwipeMenuItem(mContext)   .setBackgroundDrawable(R.drawable.selector_red)   .setImage(R.mipmap.ic_action_delete) // 圖標。   .setText("刪除") // 文字。   .setTextColor(Color.WHITE) // 文字顏色。   .setTextSize(16) // 文字大小。   .setWidth(size)   .setHeight(size);  swipeRightMenu.addMenuItem(deleteItem);// 添加一個按鈕到右側側菜單。.  // 上面的菜單哪邊不要菜單就不要添加。 }};

更多使用方法請參考Demo。

第四步,繼承SwipeMenuAdapter,和正常的Adapter一樣使用:

public class MenuAdapter extends SwipeMenuAdapter<MenuAdapter.DefaultViewHolder> { @Override public int getItemCount() {  return 0; } @Override public View onCreateContentView(ViewGroup parent, int viewType) {  return null; } @Override public ViewHolder onCompatCreateViewHolder(View realContentView, int viewType) {  return null; } @Override public void onBindViewHolder(MenuAdapter.DefaultViewHolder holder, int position) { }}

就到這里,更多的細節(jié),請參考demo和源碼,源碼demo下載傳送門

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 藁城市| 呼和浩特市| 临湘市| 泰安市| 盖州市| 炉霍县| 白山市| 彰化市| 巴塘县| 家居| 翁牛特旗| 尼玛县| 南丹县| 寻甸| 安图县| 恩平市| 北票市| 永康市| 乌兰浩特市| 义马市| 巴青县| 淮北市| 化州市| 盘锦市| 沙湾县| 嘉禾县| 常德市| 喀喇沁旗| 巴彦淖尔市| 砀山县| 监利县| 庄河市| 平定县| 伽师县| 远安县| 敖汉旗| 佛教| 华宁县| 东兴市| 宁安市| SHOW|