MCPcopy Index your code
hub / github.com/baoyongzhang/SwipeMenuListView

github.com/baoyongzhang/SwipeMenuListView @1.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.1.0 ↗ · + Follow
141 symbols 301 edges 10 files 7 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SwipeMenuListView

Android Arsenal

A SwipeMenu of ListView.

Demo

Screenshot

Usage

Step 1

  • add SwipeMenuListView in layout xml
<com.baoyz.swipemenulistview.SwipeMenuListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

Step 2

  • create a SwipeMenuCreator to add items.
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
listView.setMenuCreator(creator);

Step 3

  • listener item click event
listView.setOnMenuItemClickListener(new OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {
        switch (index) {
        case 0:
            // open
            break;
        case 1:
            // delete
            break;
        }
        // false : close the menu; true : not close the menu
        return false;
    }
});

Create Different Menu

  • Use the ViewType of adapter
    class AppAdapter extends BaseAdapter {

        ...

        @Override
        public int getViewTypeCount() {
            // menu type count
            return 2;
        }

        @Override
        public int getItemViewType(int position) {
            // current menu type
            return type;
        }

        ...
    }
  • Create different menus depending on the view type
    SwipeMenuCreator creator = new SwipeMenuCreator() {

            @Override
            public void create(SwipeMenu menu) {
                // Create different menus depending on the view type
                switch (menu.getViewType()) {
                case 0:
                    // create menu of type 0
                    break;
                case 1:
                    // create menu of type 1
                    break;
                ...
                }
            }

        };
  • Demo

Screenshot

Other

  • OnSwipeListener
listView.setOnSwipeListener(new OnSwipeListener() {

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

    @Override
    public void onSwipeEnd(int position) {
        // swipe end
    }
});
  • open menu method for SwipeMenuListView
listView.smoothOpenMenu(position);
  • Open/Close Animation Interpolator
// Close Interpolator
listView.setCloseInterpolator(new BounceInterpolator());
// Open Interpolator
listView.setOpenInterpolator(...);

Screenshot

Extension points exported contracts — how you extend this code

SwipeMenuCreator (Interface)
@author baoyz @date 2014-8-24 [2 implementers]
library/src/com/baoyz/swipemenulistview/SwipeMenuCreator.java
OnSwipeItemClickListener (Interface)
(no doc) [3 implementers]
library/src/com/baoyz/swipemenulistview/SwipeMenuView.java
OnMenuItemClickListener (Interface)
(no doc) [2 implementers]
library/src/com/baoyz/swipemenulistview/SwipeMenuListView.java
OnSwipeListener (Interface)
(no doc) [1 implementers]
library/src/com/baoyz/swipemenulistview/SwipeMenuListView.java

Core symbols most depended-on inside this repo

getContext
called by 13
library/src/com/baoyz/swipemenulistview/SwipeMenu.java
getWidth
called by 11
library/src/com/baoyz/swipemenulistview/SwipeMenuItem.java
setBackground
called by 10
library/src/com/baoyz/swipemenulistview/SwipeMenuItem.java
setWidth
called by 10
library/src/com/baoyz/swipemenulistview/SwipeMenuItem.java
addMenuItem
called by 10
library/src/com/baoyz/swipemenulistview/SwipeMenu.java
setIcon
called by 7
library/src/com/baoyz/swipemenulistview/SwipeMenuItem.java
dp2px
called by 6
sample/src/com/baoyz/swipemenulistviewsample/DifferentMenuActivity.java
create
called by 5
library/src/com/baoyz/swipemenulistview/SwipeMenuCreator.java

Shape

Method 124
Class 13
Interface 4

Languages

Java100%

Modules by API surface

library/src/com/baoyz/swipemenulistview/SwipeMenuLayout.java24 symbols
library/src/com/baoyz/swipemenulistview/SwipeMenuListView.java22 symbols
library/src/com/baoyz/swipemenulistview/SwipeMenuAdapter.java18 symbols
sample/src/com/baoyz/swipemenulistviewsample/SimpleActivity.java17 symbols
sample/src/com/baoyz/swipemenulistviewsample/DifferentMenuActivity.java17 symbols
library/src/com/baoyz/swipemenulistview/SwipeMenuItem.java16 symbols
library/src/com/baoyz/swipemenulistview/SwipeMenuView.java13 symbols
library/src/com/baoyz/swipemenulistview/SwipeMenu.java9 symbols
sample/src/com/baoyz/swipemenulistviewsample/MainActivity.java3 symbols
library/src/com/baoyz/swipemenulistview/SwipeMenuCreator.java2 symbols

For agents

$ claude mcp add SwipeMenuListView \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page