{"id":13396109,"url":"https://github.com/baoyongzhang/SwipeMenuListView","last_synced_at":"2025-03-13T22:31:42.243Z","repository":{"id":20017090,"uuid":"23284820","full_name":"baoyongzhang/SwipeMenuListView","owner":"baoyongzhang","description":"[DEPRECATED] A swipe menu for ListView.","archived":false,"fork":false,"pushed_at":"2022-09-08T07:08:01.000Z","size":1854,"stargazers_count":3507,"open_issues_count":137,"forks_count":1261,"subscribers_count":174,"default_branch":"master","last_synced_at":"2024-10-29T17:43:30.299Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baoyongzhang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-24T15:40:45.000Z","updated_at":"2024-10-18T07:31:53.000Z","dependencies_parsed_at":"2023-01-12T05:15:34.130Z","dependency_job_id":null,"html_url":"https://github.com/baoyongzhang/SwipeMenuListView","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baoyongzhang%2FSwipeMenuListView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baoyongzhang%2FSwipeMenuListView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baoyongzhang%2FSwipeMenuListView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baoyongzhang%2FSwipeMenuListView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baoyongzhang","download_url":"https://codeload.github.com/baoyongzhang/SwipeMenuListView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243493853,"owners_count":20299726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T18:00:40.378Z","updated_at":"2025-03-13T22:31:41.802Z","avatar_url":"https://github.com/baoyongzhang.png","language":"Java","funding_links":[],"categories":["Index `(light-weight pages)`","Index","Libs"],"sub_categories":["\u003cA NAME=\"Widget\"\u003e\u003c/A\u003eWidget"],"readme":"SwipeMenuListView\n=================\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-SwipeMenuListView-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/912)\n[ ![Download](https://api.bintray.com/packages/baoyongzhang/maven/SwipeMenuListView/images/download.svg) ](https://bintray.com/baoyongzhang/maven/SwipeMenuListView/_latestVersion)\n\nA swipe menu for ListView.\n\n# Demo\n\u003cp\u003e\n   \u003cimg src=\"https://raw.githubusercontent.com/baoyongzhang/SwipeMenuListView/master/demo.gif\" width=\"320\" alt=\"Screenshot\"/\u003e\n\u003c/p\u003e\n\n# Usage\n\n### Add dependency\n\n```groovy\ndependencies {\n    compile 'com.baoyz.swipemenulistview:library:1.3.0'\n}\n```\n\n### Step 1\n\n* add SwipeMenuListView in layout xml\n\n```xml\n\u003ccom.baoyz.swipemenulistview.SwipeMenuListView\n        android:id=\"@+id/listView\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\" /\u003e\n```\n\n### Step 2\n\n* create a SwipeMenuCreator to add items.\n\n```java\nSwipeMenuCreator creator = new SwipeMenuCreator() {\n\n\t@Override\n\tpublic void create(SwipeMenu menu) {\n\t\t// create \"open\" item\n\t\tSwipeMenuItem openItem = new SwipeMenuItem(\n\t\t\t\tgetApplicationContext());\n\t\t// set item background\n\t\topenItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9,\n\t\t\t\t0xCE)));\n\t\t// set item width\n\t\topenItem.setWidth(dp2px(90));\n\t\t// set item title\n\t\topenItem.setTitle(\"Open\");\n\t\t// set item title fontsize\n\t\topenItem.setTitleSize(18);\n\t\t// set item title font color\n\t\topenItem.setTitleColor(Color.WHITE);\n\t\t// add to menu\n\t\tmenu.addMenuItem(openItem);\n\n\t\t// create \"delete\" item\n\t\tSwipeMenuItem deleteItem = new SwipeMenuItem(\n\t\t\t\tgetApplicationContext());\n\t\t// set item background\n\t\tdeleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9,\n\t\t\t\t0x3F, 0x25)));\n\t\t// set item width\n\t\tdeleteItem.setWidth(dp2px(90));\n\t\t// set a icon\n\t\tdeleteItem.setIcon(R.drawable.ic_delete);\n\t\t// add to menu\n\t\tmenu.addMenuItem(deleteItem);\n\t}\n};\n\n// set creator\nlistView.setMenuCreator(creator);\n```\n\n### Step 3\n\n* listener item click event\n\n```java\nlistView.setOnMenuItemClickListener(new OnMenuItemClickListener() {\n\t@Override\n\tpublic boolean onMenuItemClick(int position, SwipeMenu menu, int index) {\n\t\tswitch (index) {\n\t\tcase 0:\n\t\t\t// open\n\t\t\tbreak;\n\t\tcase 1:\n\t\t\t// delete\n\t\t\tbreak;\n\t\t}\n\t\t// false : close the menu; true : not close the menu\n\t\treturn false;\n\t}\n});\n```\n\n### Swipe directions\n\n```java\n\t// Right\n\tmListView.setSwipeDirection(SwipeMenuListView.DIRECTION_RIGHT);\n\t\n\t// Left\n\tmListView.setSwipeDirection(SwipeMenuListView.DIRECTION_LEFT);\n```\n\n### Create Different Menu\n\n* Use the ViewType of adapter\n\n```java\n\tclass AppAdapter extends BaseAdapter {\n\n\t\t...\n\t\t\n\t\t@Override\n\t\tpublic int getViewTypeCount() {\n\t\t\t// menu type count\n\t\t\treturn 2;\n\t\t}\n\t\t\n\t\t@Override\n\t\tpublic int getItemViewType(int position) {\n\t\t\t// current menu type\n\t\t\treturn type;\n\t\t}\n\n\t\t...\n\t}\n```\n\n* Create different menus depending on the view type\n\n```java\n\tSwipeMenuCreator creator = new SwipeMenuCreator() {\n\n\t\t\t@Override\n\t\t\tpublic void create(SwipeMenu menu) {\n\t\t\t\t// Create different menus depending on the view type\n\t\t\t\tswitch (menu.getViewType()) {\n\t\t\t\tcase 0:\n\t\t\t\t\t// create menu of type 0\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\t// create menu of type 1\n\t\t\t\t\tbreak;\n\t\t\t\t...\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n```\n\n* Demo\n\n\u003cp\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/baoyongzhang/SwipeMenuListView/master/demo3.gif\" width=\"320\" alt=\"Screenshot\"/\u003e\n\u003c/p\u003e\n\n### Other\n\n* OnSwipeListener\n\n```java\nlistView.setOnSwipeListener(new OnSwipeListener() {\n\t\t\t\n\t@Override\n\tpublic void onSwipeStart(int position) {\n\t\t// swipe start\n\t}\n\t\n\t@Override\n\tpublic void onSwipeEnd(int position) {\n\t\t// swipe end\n\t}\n});\n```\n\n* open menu method for SwipeMenuListView\n\n```java\nlistView.smoothOpenMenu(position);\n```\n\n* Open/Close Animation Interpolator\n\n```java\n// Close Interpolator\nlistView.setCloseInterpolator(new BounceInterpolator());\n// Open Interpolator\nlistView.setOpenInterpolator(...);\n```  \n  \n\n\u003cp\u003e\n   \u003cimg src=\"demo2.gif\" width=\"320\" alt=\"Screenshot\"/\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaoyongzhang%2FSwipeMenuListView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaoyongzhang%2FSwipeMenuListView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaoyongzhang%2FSwipeMenuListView/lists"}