Android RecycleView 实现左滑上下分层示例代码(自定义功能)

由于项目原因,需要在很多地方需要左划删除,并在后期会在item中不定增加功能。网上很多左划删除的demo,但大多封装的不太彻底,所以就试着自己进行封装。

独立上下两层互补干扰,满足不同item的左划

底部功能项不定如(删除、收藏)

截图

独立Adapter的操作方式

思路: public RCommonSlideAdapter(Object object, List datas, int layoutId, Class clazz, SlideItemHolder handle) {

在onCreateViewHolder中通过反射创建holder,保证数据的操作通过回调函数,交给activity处理

Constructor constructor2 = mClazz.getConstructor(View.class);
holder = constructor2.newInstance(v);

上下分层

思路:创建底部xml布局,再通过addView插入顶部view,并交由activity处理,底部布局处理放在adapter中处理。

 Constructor constructor = ViewHolderClass.SlideViewHolder.class.getConstructor(View.class);
   holder = constructor.newInstance(v);

   View contentView = View.inflate(parent.getContext(), mLayoutId, null);

   ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup
     .LayoutParams.WRAP_CONTENT);

   ((ViewHolderClass.SlideViewHolder) holder).mRlSlidContent.addView(contentView, params);

   Constructor constructor2 = mClazz.getConstructor(View.class);
   holder = constructor2.newInstance(v);

   ((ViewHolderClass.SlideViewHolder) holder).mRlSlidContent.getLayoutParams().width = getScreenWidth(parent.getContext());

独立功能项

思路:在xml布局中,不断增加item。并再回调函数中,对每个按钮选择性处理,并可动态添加

<LinearLayout
    android:id="@+id/linDelete"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/rlSlidContent"
    android:orientation="vertical"
    >

    <ImageView
     android:id="@+id/sliding_delete"
     android:layout_width="30dp"
     android:layout_height="30dp"
     android:layout_gravity="center_horizontal"
     android:src="@drawable/icon_item_delete"
     />
   </LinearLayout>
public class ViewHolderClass {
 public static class SlideViewHolder extends RecyclerView.ViewHolder {
  @BindView(R.id.sliding_delete)
  public ImageView btn_Delete;
  @BindView(R.id.rlSlidContent)
  public RelativeLayout mRlSlidContent;
  @BindView(R.id.linSlideTitle)
  public LinearLayout mLinSlideTitle;
  @BindView(R.id.tvSlideTitle)
  public TextView mTvSlideTitle;

  public SlideViewHolder(View view) {
   super(view);
   ButterKnife.bind(this, view);
  }
 }

 public static class ShopCarViewHolder extends SlideViewHolder {

  @BindView(R.id.itemTv)
  public TextView mItemTv;

  public ShopCarViewHolder(View view) {
   super(view);
  }
 }
}

代码如下:RecycleSlideDemo_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android 中RecycleView实现item的点击事件

    Android 中RecycleView实现item的点击事件 RecycleView现在已经越来越受到大家的重视,因为他既可以代替listView还可以代替GridView,但是RecycleView本身不不像ListView那样具有setOnItemClickListener,这个关于子item的点击,但是我们往往会用到RecycleView并且希望他的自孩子可以被点击,那么如何实现他的item的点击事件呢? 首先我们在RecyclerView.ViewHolder中的实现: public

  • android中RecycleView添加下滑到底部的监听示例

    我们的日常开发中经常用到下拉刷新,而网上评价最好的开源下拉刷新组件当然还是android-Ultra-Pull-To-Refresh此组件可以给任何的控件添加下拉刷新功能.当然也包括recycleview了. 可惜android-Ultra-Pull-To-Refresh只是提供了下拉刷新的功能,但是对于列表类的组件,我们日常开发中更多的会用到其上拉加载或者滑到底部自动加载的功能,当然目前来看用户更喜欢滑到底部自动加载的功能.就比如今天说的recycleview我们只能自己给其添加滑到底部加载更

  • Android RecycleView添加head配置封装的实例

    Android RecycleView添加head配置封装的实例 这个是把RecycleView的适配器给封装了,直接调用就可以了,还添加了可以添加head头部功能,很赞的,今天记下来,下次直接用 实例代码: package com.wwl.android; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.suppor

  • Android recycleView的应用和点击事件实例详解

    Android recycleView的应用和点击事件 效果图: 长按是删除: 下面代码: MainActivity 类 public class MainActivity extends AppCompatActivity { RecyclerView rv; List<String> mList = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.on

  • Android使用RecycleView实现拖拽交换item位置

    本文实例为大家分享了RecycleView实现拖拽交换item位置的具体代码,供大家参考,具体内容如下 老规矩,先来一张效果图: 相比起ListView而言,RecycleView实现拖拽交换位置的效果要简单很多,因为通过SDK中的ItemTouchHelper工具类可以轻松的实现这种效果,并且一套代码支持所有布局方式;而ListView的话则需要通过生成View的缓存镜像设置到ImageView中,然后通过WindowManager来操作该ImageView,具体怎么实现这里就不展开讲解了.回

  • Android RecycleView 实现左滑上下分层示例代码(自定义功能)

    由于项目原因,需要在很多地方需要左划删除,并在后期会在item中不定增加功能.网上很多左划删除的demo,但大多封装的不太彻底,所以就试着自己进行封装. 独立上下两层互补干扰,满足不同item的左划 底部功能项不定如(删除.收藏) 截图 独立Adapter的操作方式 思路: public RCommonSlideAdapter(Object object, List datas, int layoutId, Class clazz, SlideItemHolder handle) { 在onCr

  • react 移动端实现列表左滑删除的示例代码

    最近做了一个类似系统操作的左滑删除的demo,用的taro框架,和大家分享一下~ 首先需要考虑的有以下几点: 1)布局: 2)判断是左滑还是右滑,左滑时出现删除,右滑时回归原位: 3)排他性,意思是某一个时间只能有一个项出现删除,当有另一个出现删除时,上一个自动回归原位. 我将列表项封装成一个组件,而整个列表是另一个组件. 接下来先说列表项这个组件,逐一解决以上这些问题: 1)布局 我采用的是列表项最外层套一个盒子,这个盒子宽度设置为100vw,并且overflow:hidden.而列表项要包括

  • Android Recyclerview实现左滑删除功能

    本文实例为大家分享了Android Recyclerview实现左滑删除的具体代码,供大家参考,具体内容如下 1.先创建一个工具类 SlideRecyclerView public class SlideRecyclerView extends RecyclerView {       private static final String TAG = "SlideRecyclerView";     private static final int INVALID_POSITION

  • Android ItemDecoration 实现分组索引列表的示例代码

    本文介绍了Android ItemDecoration 实现分组索引列表的示例代码,分享给大家.具体如下: 先来看看效果: 我们要实现的效果主要涉及三个部分: 分组 GroupHeader 分割线 SideBar 前两个部分涉及到一个ItemDecoration类,也是我们接下来的重点,该类是RecyclerView的一个抽象静态内部类,主要作用就是给RecyclerView的ItemView绘制额外的装饰效果,例如给RecyclerView添加分割线. 使用ItemDecoration时需要继

  • Android利用贝塞尔曲线绘制动画的示例代码

    目录 彩虹系列 弹簧动画 复杂立体感动画 总结 前面我们花了几篇介绍了贝塞尔曲线的原理和绘制贝塞尔曲线,着实让我们见识到了贝塞尔曲线的美.好奇心驱使我想看看贝塞尔曲线动起来会是什么样?本篇就借由动画驱动贝塞尔曲线绘制看看动起来的贝塞尔曲线什么效果. 彩虹系列 通过动画控制绘制的结束点,就可以让贝塞尔曲线动起来.例如下面的动图展示的效果,看起来像搭了一个滑滑梯一样.实际上就是用7条贝塞尔曲线实现的,我们使用了 Animation 对象的值来控制绘制的结束点,从而实现了对应的动画效果. 具体源码如下

  • Android串口通信封装之OkUSB的示例代码

    本文介绍了Android串口通信封装之OkUSB的示例代码,分享给大家.具体如下: Github传送门:OkUSB OkUSB 一个简洁的Android串口通信框架. 功能简介 支持设置波特率 支持设置数据位 支持设置停止位 支持设置校验位 支持DTS和RTS 支持串口连接状态监听 用法简介 Gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { compile '

  • Android 实现无网络页面切换的示例代码

    本文介绍了Android 实现无网络页面切换的示例代码,分享给大家,具体如下: 实现思路 需求是在无网络的时候显示特定的页面,想到要替换页面的地方,大多都是recyclerview或者第三方recyclerview这种需要显示数据的地方,因此决定替换掉页面中所有的recyclerview为无网络页面 实现过程 1 在BaseActivity中,当加载布局成功以后,通过id找到要替换的view,通过indexOfChild()方法,找到要替换的view的位置,再通过remove和add view来

  • Android中js和原生交互的示例代码

    本文介绍了Android中js和原生交互的示例代码,分享给大家,具体如下: 加载webview的类 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); JavaScriptInterf

  • Android中TabLayout添加小红点的示例代码

    本文介绍了Android中TabLayout添加小红点的示例代码,分享给大家,具体如下 安卓原生的android.support.design.widget.TabLayout,配合ViewPager已经很好用了,但是有时我们会在内容更新时,在tab标题右上方加上一个红点等标记此tab内容有更新时,就需要给原生的TabLayout设置你定义的布局,用法和原生的一样,只是在代码中设置一下TabLayout的布局. 1.主布局文件 <?xml version="1.0" encodi

  • Android 快速实现状态栏透明样式的示例代码

    在手机 app 开发过程中,经常会遇到一种需求,需要将 内容区域 顶到 状态栏 中去.这个时候,下面一段代码,就能很轻松解决问题了. 上代码之前先上效果图: 下面上一段代码: getWindow().requestFeature(Window.FEATURE_NO_TITLE); if(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.clearFlags(WindowManager.

随机推荐