Skip to content

ForNowForever/SwipeMenuListView

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

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java57.1%
  • HTML23.4%
  • CSS19.4%
  • JavaScript0.1%