Android RecycleView 實現(xiàn)左滑上下分層示例代碼(自定義功能)
由于項目原因,需要在很多地方需要左劃刪除,并在后期會在item中不定增加功能。網(wǎng)上很多左劃刪除的demo,但大多封裝的不太徹底,所以就試著自己進行封裝。
獨立上下兩層互補干擾,滿足不同item的左劃
底部功能項不定如(刪除、收藏)
截圖
獨立Adapter的操作方式
思路: public RCommonSlideAdapter(Object object, List datas, int layoutId, Class clazz, SlideItemHolder handle) {
在onCreateViewHolder中通過反射創(chuàng)建holder,保證數(shù)據(jù)的操作通過回調(diào)函數(shù),交給activity處理
Constructor constructor2 = mClazz.getConstructor(View.class); holder = constructor2.newInstance(v);
上下分層
思路:創(chuàng)建底部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。并再回調(diào)函數(shù)中,對每個按鈕選擇性處理,并可動態(tài)添加
<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
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實現(xiàn)跟隨手指拖動并自動貼邊的View樣式(實例demo)
本文通過實例代碼給大家介紹了android實現(xiàn)跟隨手指拖動并自動貼邊的View樣式,效果非常棒,具有參考借鑒價值,需要的朋友參考下吧2017-01-01android?studio?項目?:UI設(shè)計高精度實現(xiàn)簡單計算器
這篇文章主要介紹了android?studio?項目?:UI設(shè)計高精度實現(xiàn)簡單計算器,自主完成一個簡單APP的設(shè)計工作,綜合應(yīng)用已經(jīng)學(xué)到的Android?UI設(shè)計技巧,下面來看看實驗實現(xiàn)過程2021-12-12Android中TabLayout+ViewPager實現(xiàn)tab和頁面聯(lián)動效果
本篇文章主要介紹了Android中TabLayout+ViewPager實現(xiàn)tab和頁面聯(lián)動效果,具有一定的參考價值,有興趣的可以了解一下2017-06-06