ChromeMenu

Additional

Language
Java
Version
0.1.1 (Feb 10, 2019)
Created
Nov 26, 2018
Updated
Sep 13, 2021 (Retired)
Owner
DeweyReed
Contributor
DeweyReed
1
Activity
Badge
Generate
Download
Source code

ChromeMenu

The menu from Chromium Android appmenu(Github Mirror). 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.

Update: Recently, I found that getDragToOpenListener provides a similar effect.

Usage

  1. Install dependency

    • Jcenter: implementation 'xyz.aprildown:chrome-menu:0.1.1'
    • JitPack: implementation 'xyz.aprildown:ChromeMenu:0.1.1'
  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()

    You can define header and footer and hijack menu items after they are created through the listener.

  3. Check the sample for more customization.

More Usage

  • Change menu width

    Add this line to dimens.xml:

    <!-- 256dp is the original width -->
    <dimen name="cm_menu_width">258dp</dimen>

ChangeLog and Migration

  • 0.1.1

    • Pull changes from chromium
      • fffabbc: IPH : Set focus to highlighted menu item after opening app menu
      • ead7304: Add common colors in night- and some initial clean up on themes
    • Add proguard rules #1.
  • 0.1.0

    To set custom menu width, use cm_menu_width instead of the old menu_width.