Android列表侧滑删除就是这么简单

本文介绍如何在不依赖特定列表框架的情况下,为Android列表(如ListView、RecyclerView)添加侧滑删除功能。通过自定义列表条目容器View,监听手势事件,控制删除布局的显示与隐藏,实现侧滑删除。示例代码展示了在ListView中的应用,但适用于任何列表,方便快捷。
摘要由CSDN通过智能技术生成

前言:今天突然想起来了列表的滑动删除功能,一些下拉刷新的框架也会带这个侧滑删除的功能,比如一些listview的和recycleview的刷新框架都有这个功能,我今天写这个博客的目的是如何不依赖这些框架也是实现侧滑删除,如果自己已经使用的列表框架没有侧滑删除怎么给单独加入侧滑删除功能。

概括:我今天写的这个文章就是讲的是怎么单独给列表加入侧滑删除功能,不去为了侧滑删除而依赖一个列表框架,就是说如果需要的话可以简简单单的在自己的列表中加入这个侧滑删除的功能。主要实现就是自定义列表条目的容器view,来实现对手势的监听,从而通过手势的侧滑实现删除按钮的出现效果。


好了,下面开始正文吧。。。


首先给出自定义条目容器控件的代码:


里面的注释请好好看看,有助于你快速的看懂这个类的实现,并且实现你的自定义!!

public class DragListItem extends LinearLayout {
    private Context mContext;
    private View mHidenDragView;
    private LinearLayout mContentView;//将包裹实际的内容
    private LinearLayout mHidenLayout;
    private Scroller mScroller;
    private int mLastX, mLastY;
    private int mDragOutWidth;//完全侧滑出来的距离
    private double mfraction = 0.75;//触发自动侧滑的临界点
    private boolean isDrag = false;

    public DragListItem(Context context) {
        super(context);
        mContext = context;
        initView();
    }
    public DragListItem(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        initView();
    }
    private void initView() {
        setOrientation(HORIZONTAL);

        //merge进来整个listItem,在这里可以自己定义删除按钮的显示的布局,随便按照的喜好修改都行
        mHidenDragView = View.inflate(mContext, R.layout.hide_drag_item, this);

        mContentView = (LinearLayout) mHidenDragView.findViewById(R.id.show_content_view);
        mHidenLayout = (LinearLayout) mHidenDragView.findViewById(R.id.hide_view);
        mScroller = new Scroller(mContext);

        //将隐藏的删除布局的宽度赋值给边界的值,根据自己的需要可以任意的修改
        mDragOutWidth = dip2px(mContext, 120);
    }
    public static int dip2px(Context context, float dpValue) {
        
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值