Android仿IOS微信滑动删除_SwipeListView左滑删除例子
2014-11-13 13:55:43  By: dwtedx

本例子实现了滑动删除ListView的Itemdemo的效果、大家都知道、这种创意是来源于IOS的、左滑删除的功能、在Android上面实现比较麻烦、本例子中不仅实现了左滑删除功能、还实现了左滑赞、左滑分享、左滑收藏等功能、当然大家也可以根据自己项目的需求来修改功能、QQ和微信也实现了相同的功能、大家可以看看、先上程序运行的效果

Android滑动删除ListView的Itemdemo的效果

怎么样、大家看了这个截图是不是很心动呀、而且在左滑的时候还配有简单的滑动动画呢、非常不错、下面一起来看看实现过程吧

初始化代码


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);

    mAppList = getPackageManager().getInstalledApplications(0);

    mListView = (SwipeMenuListView) findViewById(R.id.listView);
    mAdapter = new AppAdapter();
    mListView.setAdapter(mAdapter);

    // step 1. create a MenuCreator
    SwipeMenuCreator creator = new SwipeMenuCreator() {

        @Override
        public void create(SwipeMenu menu) {
            // create "open" item
            SwipeMenuItem openItem = new SwipeMenuItem(
                    getApplicationContext());
            // set item background
            openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,
                    0xCE)));
            // set item width
            openItem.setWidth(dp2px(90));
            // set item title
            openItem.setTitle("Open");
            // set item title fontsize
            openItem.setTitleSize(18);
            // set item title font color
            openItem.setTitleColor(Color.WHITE);
            // add to menu
            menu.addMenuItem(openItem);

            // create "delete" item
            SwipeMenuItem deleteItem = new SwipeMenuItem(
                    getApplicationContext());
            // set item background
            deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,
                    0x3F, 0x25)));
            // set item width
            deleteItem.setWidth(dp2px(90));
            // set a icon
            deleteItem.setIcon(R.drawable.ic_delete);
            // add to menu
            menu.addMenuItem(deleteItem);
        }
    };
    // set creator
    mListView.setMenuCreator(creator);
}


绑定左滑和删除事件

// step 2. listener item click event
mListView.setOnMenuItemClickListener(new 
    OnMenuItemClickListener() {
    @Override
    public void onMenuItemClick(int position, 
        SwipeMenu menu, int index) {
        ApplicationInfo item = mAppList.get(position);
        switch (index) {
        case 0:
            // open
            open(item);
            break;
        case 1:
            // delete
            //delete(item);
            mAppList.remove(position);
            mAdapter.notifyDataSetChanged();
            break;
        }
    }
});

// set SwipeListener
mListView.setOnSwipeListener(new OnSwipeListener() {
    
    @Override
    public void onSwipeStart(int position) {
        // swipe start
    }
    
    @Override
    public void onSwipeEnd(int position) {
        // swipe end
    }
});

// other setting
//listView.setCloseInterpolator(new BounceInterpolator());

// test item long click
mListView.setOnItemLongClickListener(new 
    OnItemLongClickListener() {

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, 
        View view,
            int position, long id) {
        Toast.makeText(getApplicationContext(), 
            position   " long click", 0).show();
        return false;
    }
});


左滑的功能是封装好了的哈、上面贴出来的只是调用方法、更多使用方法、大家可以下载源代码慢慢研究

android 侧滑删除源代码下载链接: android 仿qq侧滑删除 密码: hser

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

    • 淺語 2016-10-17 15:16:59  57 评  | 回复

      listview 的item点击事件没走啊啊啊,这个怎么解决ne


    • dwtedx 2016-05-09 08:53:32  56 评  | 回复

      @华哥:事件冲突了吧!使用左拉式操作按钮最好不用添加复杂的事件哦!


    • 华哥 2016-05-08 23:02:41  55 评  | 回复

      大哥 如果在adapter里写了onclicklistener 以及其他点击事件listener 这个左拉 就不能用了 只能在这个listview对象中添加吗 怎么解决啊?


    • Stumbles° 2016-05-03 15:03:33  53 评  | 回复

      博主,注释都不写的哇。要是能多加点注释就好了。


    • Unity Fans 2016-03-03 17:41:12  49 评  | 回复

      出现了新问题 listView中item的点击和左滑 事件冲突喽!!!


    • sunyu 2016-01-30 16:56:38  48 评  | 回复

      这个我用了,代码基本都懂了,有个问题,只能从没有被覆盖的地方向回滑,有小伙伴解决了吗


    • dwtedx 2015-12-22 21:20:08  47 评  | 回复

      @Daniel:就和普通的ListView一样、试试notifyDataSetChanged()这个可以使用不


    • Daniel 2015-12-22 16:17:07  46 评  | 回复

      @dwtedx:兄弟感谢回复,setOnMenuItemClickListener的点击事件里设置了,问题是,怎么刷新数据,求解!!!


DD记账
top
+