Skip to content

Repository files navigation

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.
SwipeMenuCreatorcreator = newSwipeMenuCreator() {
@Overridepublicvoidcreate(SwipeMenumenu) {
// create "open" itemSwipeMenuItemopenItem = newSwipeMenuItem(
getApplicationContext());
// set item backgroundopenItem.setBackground(newColorDrawable(Color.rgb(0xC9, 0xC9,
0xCE)));
// set item widthopenItem.setWidth(dp2px(90));
// set item titleopenItem.setTitle("Open");
// set item title fontsizeopenItem.setTitleSize(18);
// set item title font coloropenItem.setTitleColor(Color.WHITE);
// add to menumenu.addMenuItem(openItem);
// create "delete" itemSwipeMenuItemdeleteItem = newSwipeMenuItem(
getApplicationContext());
// set item backgrounddeleteItem.setBackground(newColorDrawable(Color.rgb(0xF9,
0x3F, 0x25)));
// set item widthdeleteItem.setWidth(dp2px(90));
// set a icondeleteItem.setIcon(R.drawable.ic_delete);
// add to menumenu.addMenuItem(deleteItem);
}
};
// set creatorlistView.setMenuCreator(creator);

Step 3

  • listener item click event
listView.setOnMenuItemClickListener(newOnMenuItemClickListener() {
@OverridepublicbooleanonMenuItemClick(intposition, SwipeMenumenu, intindex) {
switch (index) {
case0:
// openbreak;
case1:
// deletebreak;
}
// false : close the menu; true : not close the menureturnfalse;
}
});

Create Different Menu

  • Use the ViewType of adapter
classAppAdapterextendsBaseAdapter {
...
@OverridepublicintgetViewTypeCount() {
// menu type countreturn2;
}
@OverridepublicintgetItemViewType(intposition) {
// current menu typereturntype;
}
...
}
  • Create different menus depending on the view type
SwipeMenuCreatorcreator = newSwipeMenuCreator() {
@Overridepublicvoidcreate(SwipeMenumenu) {
// Create different menus depending on the view typeswitch (menu.getViewType()) {
case0:
// create menu of type 0break;
case1:
// create menu of type 1break;
...
}
}
};
  • Demo

Screenshot

Other

  • OnSwipeListener
listView.setOnSwipeListener(newOnSwipeListener() {
@OverridepublicvoidonSwipeStart(intposition) {
// swipe start
}
@OverridepublicvoidonSwipeEnd(intposition) {
// swipe end
}
});
  • open menu method for SwipeMenuListView
listView.smoothOpenMenu(position);
  • Open/Close Animation Interpolator
// Close InterpolatorlistView.setCloseInterpolator(newBounceInterpolator());
// Open InterpolatorlistView.setOpenInterpolator(...);

Screenshot

About

SwipeMenuListView

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages