Android功能之第三方SwipeMenuListView,Item项的侧滑

来源:互联网 发布:微信图文编辑软件 编辑:程序博客网 时间:2024/05/16 13:03

针对 ListView item 的侧滑菜单,项目地址:https://github.com/baoyongzhang/SwipeMenuListView

库工程、Demo地址:http://pan.baidu.com/s/1sjEFbjR

这里写图片描述

Usage
Add dependency

dependencies {    compile 'com.baoyz.swipemenulistview:library:1.3.0'}

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 creatorlistView.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;    }});

Swipe directions

    // Right    mListView.setSwipeDirection(SwipeMenuListView.DIRECTION_RIGHT);    // Left    mListView.setSwipeDirection(SwipeMenuListView.DIRECTION_LEFT);

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;                ...                }            }        };

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 InterpolatorlistView.setCloseInterpolator(new BounceInterpolator());// Open InterpolatorlistView.setOpenInterpolator(...);
0 0
原创粉丝点击