左滑删除组件LeftSlideView

文章介绍了ZTW_Engines_LeftSlide组件的使用,这是一个用于实现左滑删除效果的库。用户需要导入相应的依赖,然后通过LeftSlideHorizontalScrollView和LeftSlideView来创建布局。组件支持左右分区,第一个view为左侧内容,第二个view为展开后的操作布局。同时,文章提到了LeftSlideProvider类,用于控制多视图联动,当新的视图展开时,旧视图会自动折叠。在列表中使用时,可以通过添加到控制器来实现联动效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

左滑删除组件 ZTW_Engines_LeftSlide

导入依赖

Implementation 'com.github.IHoveYou:LeftSlideView:v1.2.0'

使用方式
LeftSlideHorizontalScrollView 滑动能力布局
LeftSlideView 左右分区布局 分区方式 包裹下第一个view为左侧内容 第二个view为展开后布局(ps:操作按钮布局)

<com.ztocwst.scm.engines.leftslide.LeftSlideHorizontalScrollView
        android:scrollbars="none"
        android:id="@+id/leftSlideHorizontalScrollView"
        android:layout_width="match_parent"
        android:fillViewport="true"
        android:layout_height="40dp"
        >
        <com.ztocwst.scm.engines.leftslide.LeftSlideView
            android:id="@+id/leftSlideView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
            <!-- 左侧内容布局可以是任意View 或ViewGroup !-->
            <LinearLayout
                android:paddingHorizontal="15dp"
                android:orientation="vertical"
                android:layout_width="300dp"
                android:layout_height="match_parent">
                <TextView
                    android:gravity="center_vertical"
                    android:text="23333"
                    android:id="@+id/textView"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>
            </LinearLayout>
            <!-- 左侧内容布局 可以是任意View 或ViewGroup !-->
            <LinearLayout
                android:orientation="vertical"
                android:background="@color/teal_700"
                android:layout_width="50dp"
                android:layout_height="match_parent"/>
        </com.ztocwst.scm.engines.leftslide.LeftSlideView>

    </com.ztocwst.scm.engines.leftslide.LeftSlideHorizontalScrollView>

列表联合使用 提供了 LeftSlideProvider 控制类
使用 LeftSlideProvider.addView 添加需要联动的类
联动效果为当前只有一个View被展开,展开新的view之后老View自动折叠
将需要联动的VIew 添加入控制器,可以实现多View联动,多adapter联动等

//使用示例
class ListAdapter(val list: ArrayList<String>, val context: Context) :
    RecyclerView.Adapter<MainAdapter.ViewHolder1>() {
    val  leftSlideUtils=LeftSlideProvider() //联动View公用一个控制器
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MainAdapter.ViewHolder1 {
        val binding = ItemMainBinding.inflate(LayoutInflater.from(context), parent, false)
        //将需要联动的VIew 添加入控制器,可以实现多View联动,多adapter联动等
        leftSlideUtils.addView(binding.leftSlideHorizontalScrollView)
        return MainAdapter.ViewHolder1(binding.root)
    }

    override fun onBindViewHolder(holder: MainAdapter.ViewHolder1, position: Int) {
        val binding = ItemMainBinding.bind(holder.itemView)
        binding.textView.text = list[position]
    }

    override fun onViewDetachedFromWindow(holder: MainAdapter.ViewHolder1) {
        //回收 回收复用布局时,建议将其手动折叠,防止复用布局后出现展开状态
        val binding = ItemMainBinding.bind(holder.itemView)
        
        //有动画关闭 二选一
        binding.leftSlideHorizontalScrollView.isRollOut = false
        //无动画关闭 二选一
        binding.leftSlideHorizontalScrollViewinitScrollow.initScrollow()
        
        super.onViewDetachedFromWindow(holder)
    }

    override fun getItemCount(): Int = list.size

}

LeftSlideHorizontalScrollView api

LeftSlideHorizontalScrollView
    /**
     * 触摸事件
     */
    var moveClickListener: MoveClickListener? = null
    /**
     * 按钮展开状态 更改值后自动变更布局状态
     */
    var isRollOut = false

MoveClickListener Api

    /**
     * 触摸回调
     */
    interface MoveClickListener {
        /**
         * 移动中回调
         * @param leftSlideHorizontalScrollView
         * @param moveX x轴移动距离
         */
        fun onMoveClickListener(leftSlideHorizontalScrollView: LeftSlideHorizontalScrollView?, moveX: Int)
        /**
         * 移动结束
         * @param leftSlideHorizontalScrollView
         * @param isRollOut 当前状态  true 展开  false 收起
         */
        fun onUpClickListener(leftSlideHorizontalScrollView: LeftSlideHorizontalScrollView?, isRollOut: Boolean)
    }

详解

github 地址 https://github.com/IHoveYou/LeftSlideView
详细描述可见另一篇 https://blog.youkuaiyun.com/qq_35644925/article/details/126118985

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值