Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Latest commit

 

History

History
51 lines (33 loc) · 2.07 KB

File metadata and controls

51 lines (33 loc) · 2.07 KB

Android Components > Browser > Menu 2

A generic menu with customizable items primarily for browser toolbars.

This replaces the browser-menu component with a new API using immutable objects, designed to work well with lib-state.

Usage

Setting up the dependency

Use Gradle to download the library from maven.mozilla.org (Setup repository):

implementation "org.mozilla.components:browser-menu2:{latest-version}"

MenuController

The menu controller is used to control the items in the menu as well as displaying the menu popup.

Sample code can be found in Sample Toolbar app.

There are multiple properties that you customize of the browser menu by just adding them into your dimens.xml file.

<resources xmlns:tools="http://schemas.android.com/tools">

   <!--Change how rounded the corners of the menu should be-->
    <dimen name="mozac_browser_menu2_corner_radius" tools:ignore="UnusedResources">4dp</dimen>

    <!--Change how much shadow the menu should have-->
    <dimen name="mozac_browser_menu2_elevation" tools:ignore="UnusedResources">4dp</dimen>

    <!--Change the width of the menu - can also be set in MenuController#show()-->
    <dimen name="mozac_browser_menu2_width" tools:ignore="UnusedResources">250dp</dimen>

    <!--Change the top and bottom padding of the menu-->
    <dimen name="mozac_browser_menu2_padding_vertical" tools:ignore="UnusedResources">8dp</dimen>

</resources>

Options displayed in the menu are configured by using a list of MenuCandidate objects. The list of options can be sent to the menu by calling MenuController#submitList(). To change the displayed options, simply call submitList again with a new list.

License

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/