Android 使用SwipeMenuListView

第一步:下载源码包(添加依赖也可以)

https://github.com/baoyongzhang/SwipeMenuListView

第二步:复制文件到项目录下

第三步:File –> New –> Import Moudle 报错就修改 compileSdkVersion  minSdkVersion  targetSdkVersion和项目的build.gradle里的值一样即可

第四步:添加依赖,点击 File–>Project Structure,之后选择Dependencies  右侧绿色的+,选择Module Dependency,这样就导进来了。

第五步:listview三部曲:

          实例化SwipeMenuListView,实例化adapter,设置SwipeMenuListView的adapter

第六步:设置侧滑menu

    creator = new SwipeMenuCreator() {

         @Override
         public void create(SwipeMenu menu) {
            // create "open" item
            SwipeMenuItem openItem = new SwipeMenuItem(
                  getApplicationContext());
            // 设置背景颜色
            openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,
                  0xCE)));
            // 设置宽度
            openItem.setWidth(dp2px(90));
            // 设置标题
              openItem.setTitle("打开");
     
            // 设置文字大小
            openItem.setTitleSize(18);
            //设置标题颜色
            openItem.setTitleColor(Color.WHITE);
            // 添加menu
            menu.addMenuItem(openItem);

            SwipeMenuItem deleteItem = new SwipeMenuItem(
                  getApplicationContext());
            deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,
                  0x3F, 0x25)));
            deleteItem.setWidth(dp2px(90));
            deleteItem.setTitle("删除");
            deleteItem.setTitleSize(18);
            deleteItem.setTitleColor(Color.WHITE);
            menu.addMenuItem(deleteItem);

         }
      };

      // 设置 creator
      lv_chat.setMenuCreator(creator);

第七步:设置三个监听器:

    为ListView设置菜单项点击监听器,来监听菜单项的点击事件
        mListView.setOnMenuItemClickListener(new  
      SwipeMenuListView.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
                //position:列表项的下标
                //index:菜单项的下标
                ApplicationInfo item = mAppList.get(position);
                switch (index) {
                    case 0:
                      //自己处理操作
                        break;
                    case 1:
                      //自己处理操作
                        break;
                }
                // true:其他已打开的列表项的菜单状态将保持原样,不会受到其他列表项的影响而自动收回
                // false:已打开的列表项的菜单将自动收回
                return false;
            }
        });
        // 设置侧滑监听器,监听侧滑开始和侧滑结束
        // 注意:当我们将一个已经侧滑出来的菜单重新收回去的时候并不会调用onSwipeStart方法,
        // 但是结束的时候依然会调用onSwipeEnd方法
        mListView.setOnSwipeListener(new SwipeMenuListView.OnSwipeListener() {

            @Override
            public void onSwipeStart(int position) {
                // swipe start
            }

            @Override
            public void onSwipeEnd(int position) {
                // swipe end
            }
        });

        // 设置监听Menu状态改变的监听器(Menu的打开和关闭)
        mListView.setOnMenuStateChangeListener(new SwipeMenuListView.OnMenuStateChangeListener() {
            @Override
            public void onMenuOpen(int position) {
            }

            @Override
            public void onMenuClose(int position) {
            }
        });

猜你喜欢

转载自blog.csdn.net/sunshine_0707/article/details/81356066