由于项目原因,需要在很多地方需要左划删除,并在后期会在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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android RecycleView 实现左滑上下分层示例代码(自定义功能)全部内容,希望文章能够帮你解决Android RecycleView 实现左滑上下分层示例代码(自定义功能)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)