The menu from Chromium Android. It can do this:
Notice the press, move, selection, up are finished in one gesture.
I love this design. It significantly improves the efficiency of using an app. So I dig into chromium, extract related code and pack them into this library.
-
Install dependency
implementation 'xyz.aprildown:chrome-menu:0.0.2'
-
Set up touch listener
val handler = AppMenuHandler(activity, listener, R.menu.menu) val helper = AppMenuButtonHelper(handler) btn.setOnTouchListener(helper)
listener
is an AppMenuPropertiesDelegate interface or use its abstract version AbstractAppMenuPropertiesDelegate() -
Handle click events
All events are sent to activity'sonOptionsItemSelected
. So override it in the activity.From 0.0.2, click events are handled in the listener's
onMenuItemClicked
-
Check the sample for more customization.
-
Change menu width
Add this line to
dimens.xml
:<!-- 256dp is the original width --> <dimen name="menu_width">258dp</dimen>
If you wish to try to the original version from chromium, check out the from_chrome
tag. After this tag, I've been adding extra code to make this library easier to use.