Android PopupMenu and iOS14+ UIMenu components for react-native.

Overview

@react-native-menu/menu

Supports Android, iOSGithub Action Badge npm

Android PopupMenu and iOS14+ UIMenu components for react-native. Falls back to ActionSheet for versions below iOS14.

Android iOS 14+ iOS 13

Installation

via npm:

npm install @react-native-menu/menu

via yarn:

yarn add @react-native-menu/menu

Installing on iOS with React Native 0.63 and above

There is an issue(https://github.com/facebook/react-native/issues/29246) causing projects with this module to fail on build on React Native 0.63 and above. This issue may be fixed in future versions of react native. As a work around, look for lines in [YourPrject].xcodeproj under LIBRARY_SEARCH_PATHS with "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", and change swift-5.0 to swift-5.3.

Linking

The package is automatically linked when building the app. All you need to do is:

npx pod-install

Usage

{ console.warn(JSON.stringify(nativeEvent)); }} actions={[ { id: 'add', titleColor: '#2367A2', image: Platform.select({ ios: 'plus', android: 'ic_menu_add', }), imageColor: '#2367A2', subactions: [ { id: 'nested1', title: 'Nested action', titleColor: 'rgba(250,180,100,0.5)', subtitle: 'State is mixed', image: Platform.select({ ios: 'heart.fill', android: 'ic_menu_today', }), imageColor: 'rgba(100,200,250,0.3)', state: 'mixed', }, { id: 'nestedDestructive', title: 'Destructive Action', attributes: { destructive: true, }, image: Platform.select({ ios: 'trash', android: 'ic_menu_delete', }), }, ], }, { id: 'share', title: 'Share Action', titleColor: '#46F289', subtitle: 'Share action on SNS', image: Platform.select({ ios: 'square.and.arrow.up', android: 'ic_menu_share', }), imageColor: '#46F289', state: 'on', }, { id: 'destructive', title: 'Destructive Action', attributes: { destructive: true, }, image: Platform.select({ ios: 'trash', android: 'ic_menu_delete', }), }, ]} shouldOpenOnLongPress={true} > Test ); }; ">
import { MenuView } from '@react-native-menu/menu';

// ...

const App = () => {
  return (
    <View style={styles.container}>
      <MenuView
        title="Menu Title"
        onPressAction={({ nativeEvent }) => {
          console.warn(JSON.stringify(nativeEvent));
        }}
        actions={[
          {
            id: 'add',
            titleColor: '#2367A2',
            image: Platform.select({
              ios: 'plus',
              android: 'ic_menu_add',
            }),
            imageColor: '#2367A2',
            subactions: [
              {
                id: 'nested1',
                title: 'Nested action',
                titleColor: 'rgba(250,180,100,0.5)',
                subtitle: 'State is mixed',
                image: Platform.select({
                  ios: 'heart.fill',
                  android: 'ic_menu_today',
                }),
                imageColor: 'rgba(100,200,250,0.3)',
                state: 'mixed',
              },
              {
                id: 'nestedDestructive',
                title: 'Destructive Action',
                attributes: {
                  destructive: true,
                },
                image: Platform.select({
                  ios: 'trash',
                  android: 'ic_menu_delete',
                }),
              },
            ],
          },
          {
            id: 'share',
            title: 'Share Action',
            titleColor: '#46F289',
            subtitle: 'Share action on SNS',
            image: Platform.select({
              ios: 'square.and.arrow.up',
              android: 'ic_menu_share',
            }),
            imageColor: '#46F289',
            state: 'on',
          },
          {
            id: 'destructive',
            title: 'Destructive Action',
            attributes: {
              destructive: true,
            },
            image: Platform.select({
              ios: 'trash',
              android: 'ic_menu_delete',
            }),
          },
        ]}
        shouldOpenOnLongPress={true}
      >
        <View style={styles.button}>
          <Text style={styles.buttonText}>Test</Text>
        </View>
      </MenuView>
    </View>
  );
};

Reference

Props

title (iOS only)

The title of the menu.

Type Required
string No

isAnchoredToRight (Android only)

Boolean determining if menu should anchored to right or left corner of parent view.

Type Required
boolean No

shouldOpenOnLongPress

Boolean determining if menu should open after long press or on normal press

Type Required
boolean No

actions

Actions to be displayed in the menu.

Type Required
MenuAction[] Yes

MenuAction

Object representing Menu Action.

export type MenuAction = {
  /**
   * Identifier of the menu action.
   * The value set in this id will be returned when menu is selected.
   */
  id?: string;
  /**
   * The action's title.
   */
  title: string;
  /**
   * (Android only)
   * The action's title color.
   * @platform Android
   */
  titleColor?: number | ColorValue;
  /**
   * (iOS14+ only)
   * An elaborated title that explains the purpose of the action.
   * @platform iOS
   */
  subtitle?: string;
  /**
   * The attributes indicating the style of the action.
   */
  attributes?: MenuAttributes;
  /**
   * (iOS14+ only)
   * The state of the action.
   * @platform iOS
   */
  state?: MenuState;
  /**
   * (Android and iOS13+ only)
   * - The action's image.
   * - Allows icon name included in project or system (Android) resources drawables and
   * in SF Symbol (iOS)
   * @example // (iOS)
   * image="plus"
   * @example // (Android)
   * image="ic_menu_add"
   * - TODO: Allow images other than those included in SF Symbol and resources drawables
   */
  image?: string;
  /**
   * (Android and iOS13+ only)
   * - The action's image color.
   */
  imageColor?: number | ColorValue;
  /**
   * (Android and iOS14+ only)
   * - Actions to be displayed in the sub menu
   * - On Android it does not support nesting next sub menus in sub menu item
   */
  subactions?: MenuAction[];
};

MenuAttributes

The attributes indicating the style of the action.

type MenuAttributes = {
  /**
   * An attribute indicating the destructive style.
   */
  destructive?: boolean;
  /**
   * An attribute indicating the disabled style.
   */
  disabled?: boolean;
  /**
   * An attribute indicating the hidden style.
   */
  hidden?: boolean;
};

MenuState

The state of the action.

/**
 * The state of the action.
 * - off: A constant indicating the menu element is in the “off” state.
 * - on: A constant indicating the menu element is in the “on” state.
 * - mixed: A constant indicating the menu element is in the “mixed” state.
 */
type MenuState = 'off' | 'on' | 'mixed';

onPressAction

Callback function that will be called when selecting a menu item. It will contain id of the given action.

Type Required
({nativeEvent}) => void No

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

Comments
  • Build failed with react native 0.69 (Android)

    Build failed with react native 0.69 (Android)

    Hello! I updated react native to 0.69.1 version but build fails on android.

    I have this error: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.5.1ù

    Can someone help me?

    opened by marcoburrometo 10
  • Menu not work in the touchableOpacity component

    Menu not work in the touchableOpacity component

    Hello everyone, I would like to understand why when I insert the component inside an onLongPress of a component, the menu does not appear. What am I doing wrong? Is it incompatible? Thank you

    opened by aldobel 10
  • refactor: Use react-native-test-app to manage our test app

    refactor: Use react-native-test-app to manage our test app

    Overview

    This PR replaces the test app in the repo with one managed by React Native Test App. This is mainly inspired by my want to add macOS support, which is currently blocked by / tracked at #141. Still, setting up the template test app now will make standing up the macOS portion of the test app trivial come time.

    "React Native Test App" provides test apps for all platforms as a package. It handles the native bits, allowing you the developer to focus on the JS. There are a few advantages to using this package:

    • It makes RN version updates easier, as it will handle the proper native code changes
    • It makes targeting new platforms (like macOS or Windows) easier, since it has a template to configure each platform's test app.

    Steps

    I tried to document my steps well with my individual commit messages. In essence:

    mv example/ example2 # Move the existing test app out of the way for a bit
    yarn add -D react-native-test-app
    yarn init-test-app
    # The options I chose
    # ✔ What is the name of your test app? … MenuExample
    # ✔ Which platforms do you need test apps for? › Android, iOS
    # ✔ Where should we create the new project? … example
    cd example
    
    

    After this I did a few extra things:

    • Added generated lock files after running yarn / pod install in the new example test app folder
      • cd example && yarn && pod install --project-directory:ios
      • git add yarn.lock ios/Podfile.lock
    • Ran yarn lint --fix to fix lint errors in the generated test app (mostly double quotes vs single quotes)
    • Modified the example test app's package.json to include the following dependency so we can actually test menu:
      • "@react-native-menu/menu": "../"

    Then finally, I copied over the JS source from the old test app, and deleted the old test app

    rm example/index.js example/App.js
    mv example2/index.tsx example.index.tsx
    mv example2/src/App.tsx example/src/App.tsx
    rm -rf example2/
    

    Test Plan

    Locally ran the iOS and Android test apps.

    Screen Shot 2021-06-27 at 4 16 11 PM
    opened by Saadnajmi 4
  • Type mismatch: inferred type is ReadableMap? but ReadableMap was expected

    Type mismatch: inferred type is ReadableMap? but ReadableMap was expected

    yarn run android throw below error

    e: /app/node_modules/@react-native-menu/menu/android/src/main/java/com/reactnativemenu/MenuView.kt: (141, 38): Type mismatch: inferred type is ReadableMap? but ReadableMap was expected e: /app/node_modules/@react-native-menu/menu/android/src/main/java/com/reactnativemenu/MenuView.kt: (177, 34): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type ReadableMap? e: /app/node_modules/@react-native-menu/menu/android/src/main/java/com/reactnativemenu/MenuView.kt: (177, 64): Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type ReadableMap? e: /app/node_modules/@react-native-menu/menu/android/src/main/java/com/reactnativemenu/MenuView.kt: (181, 35): Type mismatch: inferred type is ReadableMap? but ReadableMap was expected

    FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':react-native-menu_menu:compileDebugKotlin'.

    Compilation error. See log for more details

    I am using the latest version.

    opened by prashanthacharyam 3
  • requireNativeComponent:

    requireNativeComponent: "RCTUIMenu" was not found in the UIManager.

    For some reason after copying the demo into Expo, I got this error on my iOS device:

    requireNativeComponent: "RCTUIMenu" was not found in the UIManager.
    

    After trying on Android, I get:

    requireNativeComponent: "MenuView" was not found in the UIManager.
    
    My root component
    import * as React from 'react';
    import { Text, View, StyleSheet, Platform } from 'react-native';
    import Constants from 'expo-constants';
    
    // You can import from local files
    import AssetExample from './components/AssetExample';
    
    import { MenuView } from '@react-native-menu/menu';
    
    // or any pure javascript modules available in npm
    import { Card } from 'react-native-paper';
    
    export default function App() {
      return (
       <View style={styles.container}>
          <MenuView
            title="Menu Title"
            onPressAction={({ nativeEvent }) => {
              console.warn(JSON.stringify(nativeEvent));
            }}
            actions={[
              {
                id: 'add',
                titleColor: '#2367A2',
                image: Platform.select({
                  ios: 'plus',
                  android: 'ic_menu_add',
                }),
                imageColor: '#2367A2',
                subactions: [
                  {
                    id: 'nested1',
                    title: 'Nested action',
                    titleColor: 'rgba(250,180,100,0.5)',
                    subtitle: 'State is mixed',
                    image: Platform.select({
                      ios: 'heart.fill',
                      android: 'ic_menu_today',
                    }),
                    imageColor: 'rgba(100,200,250,0.3)',
                    state: 'mixed',
                  },
                  {
                    id: 'nestedDestructive',
                    title: 'Destructive Action',
                    attributes: {
                      destructive: true,
                    },
                    image: Platform.select({
                      ios: 'trash',
                      android: 'ic_menu_delete',
                    }),
                  },
                ],
              },
              {
                id: 'share',
                title: 'Share Action',
                titleColor: '#46F289',
                subtitle: 'Share action on SNS',
                image: Platform.select({
                  ios: 'square.and.arrow.up',
                  android: 'ic_menu_share',
                }),
                imageColor: '#46F289',
                state: 'on',
              },
              {
                id: 'destructive',
                title: 'Destructive Action',
                attributes: {
                  destructive: true,
                },
                image: Platform.select({
                  ios: 'trash',
                  android: 'ic_menu_delete',
                }),
              },
            ]}
          >
            <View style={styles.button}>
              <Text style={styles.buttonText}>Test</Text>
            </View>
          </MenuView>
        </View>
      );
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        justifyContent: 'center',
        paddingTop: Constants.statusBarHeight,
        backgroundColor: '#ecf0f1',
        padding: 8,
      },
    });
    
    
    opened by filiptronicek 3
  • chore(deps-dev): bump eslint from 7.25.0 to 7.26.0

    chore(deps-dev): bump eslint from 7.25.0 to 7.26.0

    Bumps eslint from 7.25.0 to 7.26.0.

    Release notes

    Sourced from eslint's releases.

    v7.26.0

    • aaf65e6 Upgrade: eslintrc for ModuleResolver fix (#14577) (Brandon Mills)
    • ae6dbd1 Fix: track variables, not names in require-atomic-updates (fixes #14208) (#14282) (Patrick Ahmetovic)
    • 6a86e50 Chore: remove loose-parser tests (fixes #14315) (#14569) (Milos Djermanovic)
    • ee3a3ea Fix: create .eslintrc.cjs for module type (#14304) (Nitin Kumar)
    • 6791dec Docs: fix example for require-atomic-updates (#14562) (Milos Djermanovic)
    • 388eb7e Sponsors: Sync README with website (ESLint Jenkins)
    • f071d1e Update: Add automated suggestion to radix rule for parsing decimals (#14291) (Bryan Mishkin)
    • 0b6a3f3 New: Include XO style guide in eslint --init (#14193) (Federico Brigante)
    Changelog

    Sourced from eslint's changelog.

    v7.26.0 - May 7, 2021

    • aaf65e6 Upgrade: eslintrc for ModuleResolver fix (#14577) (Brandon Mills)
    • ae6dbd1 Fix: track variables, not names in require-atomic-updates (fixes #14208) (#14282) (Patrick Ahmetovic)
    • 6a86e50 Chore: remove loose-parser tests (fixes #14315) (#14569) (Milos Djermanovic)
    • ee3a3ea Fix: create .eslintrc.cjs for module type (#14304) (Nitin Kumar)
    • 6791dec Docs: fix example for require-atomic-updates (#14562) (Milos Djermanovic)
    • 388eb7e Sponsors: Sync README with website (ESLint Jenkins)
    • f071d1e Update: Add automated suggestion to radix rule for parsing decimals (#14291) (Bryan Mishkin)
    • 0b6a3f3 New: Include XO style guide in eslint --init (#14193) (Federico Brigante)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Only safe (?.) or non-null asserted (!!.) calls are allowed on a null

    Only safe (?.) or non-null asserted (!!.) calls are allowed on a null

    I have build error in new ver 0.3.1:

    image

    ext {
        buildToolsVersion = '29.0.2'
        minSdkVersion = 21
        compileSdkVersion = 29
        targetSdkVersion = 29
        kotlin_version = '1.3.50'
    }
    
    opened by romweb 3
  • Apple M1 error build

    Apple M1 error build

    I am not able to build the app for ios due @react-native-menu/menu. The error is as followed

    ndefined symbols for architecture x86_64:
      "(extension in UIKit):__C.UIAction.init(title: Swift.String, image: __C.UIImage?, identifier: __C.UIActionIdentifier?, discoverabilityTitle: Swift.String?, attributes: __C.UIMenuElementAttributes, state: __C.UIMenuElementState, handler: (__C.UIAction) -> ()) -> __C.UIAction", referenced from:
          react_native_menu.RCTMenuAction.createUIAction((__C.UIAction) -> ()) -> __C.UIAction in libreact-native-menu.a(RCTMenuItem.o)
      "(extension in UIKit):__C.UIMenu.init(title: Swift.String, image: __C.UIImage?, identifier: __C.UIMenuIdentifier?, options: __C.UIMenuOptions, children: [__C.UIMenuElement]) -> __C.UIMenu", referenced from:
          react_native_menu.MenuView.setup() -> () in libreact-native-menu.a(MenuView.o)
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    Is there a workaround? I have done a lot of attempts without success. Thank you

    opened by opensw 3
  • fix: android sdk 33 compatibility

    fix: android sdk 33 compatibility

    Overview

    Android build would crash after upgrading to sdk 33 as indicated in issue 488 . These changes get rid of the errors and it builds correctly now.

    Test Plan

    Tried building with sdk 31 (which is what would work before the changes) and it still passes the build.

    opened by fizhy37 2
  • fix: upgrade gradle version

    fix: upgrade gradle version

    Overview

    hey maintainers, thanks for the great project.

    image

    I noticed that the Gradle version is too old if the project hasn't reset default properties will cause a build error on Android.

    related: https://github.com/nandorojo/zeego/pull/27

    How

    I saw that project's default kotlin version is 1.6.10, so I think need to upgrade Gradle version to 7.4 is correct.

    Test Plan

    check if the project build works on Android.

    opened by alantoa 2
  • chore(deps-dev): bump release-it from 14.10.0 to 15.5.0

    chore(deps-dev): bump release-it from 14.10.0 to 15.5.0

    Bumps release-it from 14.10.0 to 15.5.0.

    Release notes

    Sourced from release-it's releases.

    Release 15.5.0

    • Update dependencies (5d035be)
    • Add npm.versionArgs option (5efc57f)

    Release 15.4.3

    • Update dependencies (67da5d9)
    • Update got to 12.5.1 (#943) (a9c8c34)

    Release 15.4.2

    • Update dependencies (97095d5)
    • Defer dry run bail out in asset globbing (to include the warning in dry runs) (bf6ccc8)
    • Housekeeping for Actions (feff2eb)

    Release 15.4.1

    • Handle file paths and dots in git urls (055a4ff)
    • Update dependencies (including git-url-parse) (1851650)

    Release 15.4.0

    • Add npm.name to config.context and extend context for tagName (closes #933) (627763f)

    Release 15.3.0

    • Add new features to docs (e2101ed)
    • Add tests for branchName in tag name (a6f6eff)
    • Update dependencies (ae9ccb9)
    • add branchName for template (#897) (9aa9a5d)
    • add new --changelog option (#912) (5798a7a)

    Release 15.2.0

    • Update dependencies (b78eb1e)
    • Add package.json to exports (acc66f7)
    • Fixes loading scoped plugins to ensure name is preserved (#926) (145fc71)
    • Add workaround for Windows by removing drive letter from git url (#924) (ce3a726)
    • Enable manual triggers and disable tag triggers in test pipeline (b830876)
    • Fix plugin links (b7cd505)

    Release 15.1.4

    • Migrate to git-url-parse v12 (41aad00)
    • Updates README with new plugin package names (#922) (322ef9a)

    Release 15.1.3

    • Update dependencies (00566e0)
    • fix: Fixes exports to correctly export test utils (#921) (a5abf60)

    Release 15.1.2

    • Explicitly use node-fetch (nock doesn't intercept native fetch in Node 18) (b6d5813)
    • Update dependencies (8a8149e)
    • Use extension-based export for test/util.js (fixes #920) (529bc1f)
    • Print interpolated assets (fixes #898) (31068de)

    Release 15.1.1

    ... (truncated)

    Changelog

    Sourced from release-it's changelog.

    Changelog

    This document lists breaking changes for each major release.

    See the GitHub Releases page for detailed changelogs: https://github.com/release-it/release-it/releases

    v15 (2022-04-30)

    • Removed support for Node.js v10 and v12.
    • Removed support for GitLab v12.4 and lower.
    • Removed anonymous metrics (and the option to disable it).
    • Programmatic usage and plugins only through ES Module syntax (import)

    Use release-it v14 in legacy environments.

    v14 (2020-09-03)

    • Removed global property from plugins. Use this.config[key] instead.
    • Removed deprecated npm.access option. Set this in package.json instead.

    v13 (2020-03-07)

    • Dropped support for Node v8
    • Dropped support for GitLab v11.6 and lower.
    • Deprecated scripts are removed (in favor of hooks).
    • Removed deprecated --non-interactive (-n) argument. Use --ci instead.
    • Removed old %s and [REV_RANGE] syntax in command substitutions. Use ${version} and ${latestTag} instead.

    v12 (2019-05-03)

    • The --follow-tags argument for git push has been moved to the default configuration. This is only a breaking change if git.pushArgs was not empty (it was empty by default).

    v11

    • The custom conventional-changelog increment (e.g. "increment": "conventional:angular") with additional script configuration is replaced with a plugin. Please see conventional changelog how to use this plugin.
    • The pkgFiles option has been removed. If there's a need to bump other files than what npm version bumps, it should be (part of) a plugin.
    • By default, the latest version was derived from the latest Git tag. From v11, if the repo has a package.json then that version is used instead. The use option has been removed. Also see latest version.
    • scripts.changelog has been moved to git.changelog

    v10

    • Dropped support for Node v6

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • chore(deps-dev): bump @types/jest from 29.2.1 to 29.2.5

    chore(deps-dev): bump @types/jest from 29.2.1 to 29.2.5

    Bumps @types/jest from 29.2.1 to 29.2.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump eslint from 8.26.0 to 8.31.0

    chore(deps-dev): bump eslint from 8.26.0 to 8.31.0

    Bumps eslint from 8.26.0 to 8.31.0.

    Release notes

    Sourced from eslint's releases.

    v8.31.0

    Features

    • 52c7c73 feat: check assignment patterns in no-underscore-dangle (#16693) (Milos Djermanovic)
    • b401cde feat: add options to check destructuring in no-underscore-dangle (#16006) (Morten Kaltoft)
    • 30d0daf feat: group properties with values in parentheses in key-spacing (#16677) (Francesco Trotta)

    Bug Fixes

    • 35439f1 fix: correct syntax error in prefer-arrow-callback autofix (#16722) (Francesco Trotta)
    • 87b2470 fix: new instance of FlatESLint should load latest config file version (#16608) (Milos Djermanovic)

    Documentation

    • 4339dc4 docs: Update README (GitHub Actions Bot)
    • 4e4049c docs: optimize code block structure (#16669) (Sam Chen)
    • 54a7ade docs: do not escape code blocks of formatters examples (#16719) (Sam Chen)
    • e5ecfef docs: Add function call example for no-undefined (#16712) (Elliot Huffman)
    • a3262f0 docs: Add mastodon link (#16638) (Amaresh S M)
    • a14ccf9 docs: clarify files property (#16709) (Sam Chen)
    • 3b29eb1 docs: fix npm link (#16710) (Abdullah Osama)
    • a638673 docs: fix search bar focus on Esc (#16700) (Shanmughapriyan S)
    • f62b722 docs: country flag missing in windows (#16698) (Shanmughapriyan S)
    • 4d27ec6 docs: display zh-hans in the docs language switcher (#16686) (Percy Ma)
    • 8bda20e docs: remove manually maintained anchors (#16685) (Percy Ma)
    • b68440f docs: User Guide Getting Started expansion (#16596) (Ben Perlmutter)

    Chores

    • 65d4e24 chore: Upgrade @​eslint/eslintrc@​1.4.1 (#16729) (Brandon Mills)
    • 8d93081 chore: fix CI failure (#16721) (Sam Chen)
    • 8f17247 chore: Set up automatic updating of README (#16717) (Nicholas C. Zakas)
    • 4cd87cb ci: bump actions/stale from 6 to 7 (#16713) (dependabot[bot])
    • fd20c75 chore: sort package.json scripts in alphabetical order (#16705) (Darius Dzien)
    • 10a5c78 chore: update ignore patterns in eslint.config.js (#16678) (Milos Djermanovic)

    v8.30.0

    Features

    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)

    Bug Fixes

    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)

    Documentation

    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)

    ... (truncated)

    Changelog

    Sourced from eslint's changelog.

    v8.31.0 - December 31, 2022

    • 65d4e24 chore: Upgrade @​eslint/eslintrc@​1.4.1 (#16729) (Brandon Mills)
    • 35439f1 fix: correct syntax error in prefer-arrow-callback autofix (#16722) (Francesco Trotta)
    • 87b2470 fix: new instance of FlatESLint should load latest config file version (#16608) (Milos Djermanovic)
    • 8d93081 chore: fix CI failure (#16721) (Sam Chen)
    • 4339dc4 docs: Update README (GitHub Actions Bot)
    • 8f17247 chore: Set up automatic updating of README (#16717) (Nicholas C. Zakas)
    • 4e4049c docs: optimize code block structure (#16669) (Sam Chen)
    • 54a7ade docs: do not escape code blocks of formatters examples (#16719) (Sam Chen)
    • 52c7c73 feat: check assignment patterns in no-underscore-dangle (#16693) (Milos Djermanovic)
    • e5ecfef docs: Add function call example for no-undefined (#16712) (Elliot Huffman)
    • a3262f0 docs: Add mastodon link (#16638) (Amaresh S M)
    • 4cd87cb ci: bump actions/stale from 6 to 7 (#16713) (dependabot[bot])
    • a14ccf9 docs: clarify files property (#16709) (Sam Chen)
    • 3b29eb1 docs: fix npm link (#16710) (Abdullah Osama)
    • fd20c75 chore: sort package.json scripts in alphabetical order (#16705) (Darius Dzien)
    • a638673 docs: fix search bar focus on Esc (#16700) (Shanmughapriyan S)
    • f62b722 docs: country flag missing in windows (#16698) (Shanmughapriyan S)
    • 4d27ec6 docs: display zh-hans in the docs language switcher (#16686) (Percy Ma)
    • 8bda20e docs: remove manually maintained anchors (#16685) (Percy Ma)
    • b401cde feat: add options to check destructuring in no-underscore-dangle (#16006) (Morten Kaltoft)
    • b68440f docs: User Guide Getting Started expansion (#16596) (Ben Perlmutter)
    • 30d0daf feat: group properties with values in parentheses in key-spacing (#16677) (Francesco Trotta)
    • 10a5c78 chore: update ignore patterns in eslint.config.js (#16678) (Milos Djermanovic)

    v8.30.0 - December 16, 2022

    • f2c4737 chore: upgrade @​eslint/eslintrc@​1.4.0 (#16675) (Milos Djermanovic)
    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • ba74253 chore: standardize npm script names per #14827 (#16315) (Patrick McElhaney)
    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • 0d9af4c ci: fix npm v9 problem with file: (#16664) (Milos Djermanovic)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 90c9219 refactor: migrate off deprecated function-style rules in all tests (#16618) (Bryan Mishkin)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)
    • 8ba124c docs: update the prefer-const example (#16607) (Pavel)
    • e6cb05a docs: fix css leaking (#16603) (Sam Chen)

    v8.29.0 - December 2, 2022

    • 0311d81 docs: Configuring Plugins page intro, page tweaks, and rename (#16534) (Ben Perlmutter)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Android build fail on compileSdkVersion 33

    Android build fail on compileSdkVersion 33

    Task :react-native-menu_menu:compileDebugKotlin FAILED

    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':react-native-menu_menu:compileDebugKotlin'.
    > A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
       > Compilation error. See log for more details
    

    The above error occurs when I update to increase compileSdkVersion to 33. Works fine when I reduce it to 31.

    opened by Dajust 1
  • chore(deps-dev): bump typescript from 4.8.4 to 4.9.4

    chore(deps-dev): bump typescript from 4.8.4 to 4.9.4

    Bumps typescript from 4.8.4 to 4.9.4.

    Release notes

    Sourced from typescript's releases.

    TypeScript 4.9.4

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    Changes:

    • e2868216f637e875a74c675845625eb15dcfe9a2 Bump version to 4.9.4 and LKG.
    • eb5419fc8d980859b98553586dfb5f40d811a745 Cherry-pick #51704 to release 4.9 (#51712)
    • b4d382b9b12460adf2da4cc0d1429cf19f8dc8be Cherry-pick changes for narrowing to tagged literal types.
    • e7a02f43fce47e1a39259ada5460bcc33c8e98b5 Port of #51626 and #51689 to release-4.9 (#51627)
    • 1727912f0437a7f367d90040fc4b0b4f3efd017a Cherry-pick fix around visitEachChild to release-4.9. (#51544)

    This list of changes was auto generated.

    TypeScript 4.9

    For release notes, check out the release announcement.

    Downloads are available on:

    Changes:

    • 93bd577458d55cd720b2677705feab5c91eb12ce Bump version to 4.9.3 and LKG.
    • 107f832b80df2dc97748021cb00af2b6813db75b Update LKG.
    • 31bee5682df130a14ffdd5742f994dbe7313dd0e Cherry-pick PR #50977 into release-4.9 (#51363) [ #50872 ]
    • 1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45 Update version to 4.9.2-rc and LKG.
    • 7ab89e5c6e401d161f31f28a6c555a3ba530910e Merge remote-tracking branch 'origin/main' into release-4.9
    • e5cd686defb1a4cbdb36bd012357ba5bed28f371 Update package-lock.json
    • 8d40dc15d1b9945837e7860320fdccfe27c40cad Update package-lock.json
    • 5cfb3a2fe344a5350734305193e6cc99516285ca Only call return() for an abrupt completion in user code (#51297)
    • a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9 Fix for broken baseline in yieldInForInInDownlevelGenerator (#51345)
    • 7f8426f4df0d0a7dd8b72079dafc3e60164a23b1 fix for-in enumeration containing yield in generator (#51295)
    • 3d2b4017eb6b9a2b94bc673291e56ae95e8beddd Fix assertion functions accessed via wildcard imports (#51324)
    • 64d0d5ae140b7b26a09e75114517b418d6bcaa9f fix(51301): Fixing an unused import at the end of a line removes the newline (#51320)
    • 754eeb2986bde30d5926e0fa99c87dda9266d01b Update CodeQL workflow and configuration, fix found bugs (#51263)
    • d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b Update package-lock.json
    • d4f26c840b1db76c0b25a405c8e73830a2b45cbc fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure (#51256)
    • 16faf45682173ea437a50330feb4785578923d7f Update package-lock.json
    • 8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee fix(50654): "Move to a new file" breaks the declaration of referenced variable (#50681)
    • 170a17fad57eae619c5ef2b7bdb3ac00d6c32c47 Dom update 2022-10-25 (#51300)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump react-native-test-app from 2.0.2 to 2.1.1

    chore(deps-dev): bump react-native-test-app from 2.0.2 to 2.1.1

    Bumps react-native-test-app from 2.0.2 to 2.1.1.

    Release notes

    Sourced from react-native-test-app's releases.

    2.1.1

    2.1.1 (2022-11-30)

    Bug Fixes

    • windows: fix random Windows build failure (#1235) (4d94242)

    2.1.0

    2.1.0 (2022-11-30)

    Bug Fixes

    • ios: add support for react-native-reanimated (#1197) (b5c0844)
    • workaround for npm ignoring .gitignore (#1231) (f05935e)

    Features

    2.0.4

    2.0.4 (2022-11-29)

    Bug Fixes

    • apple: fix "ReactTestApp-Resources spec is empty" error (#1232) (e1ad744)

    2.0.3

    2.0.3 (2022-11-17)

    Bug Fixes

    • android: fix crash when initial props is set (#1206) (effecc8)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v0.7.3)
  • v0.7.3(Dec 26, 2022)

    What's Changed

    • fix: android sdk 33 compatibility by @fizhy37 in https://github.com/react-native-menu/menu/pull/489
    • chore(deps-dev): bump prettier from 2.7.1 to 2.8.1 by @dependabot in https://github.com/react-native-menu/menu/pull/487

    Full Changelog: https://github.com/react-native-menu/menu/compare/v0.7.2...v0.7.3

    Source code(tar.gz)
    Source code(zip)
  • v0.7.2(Nov 16, 2022)

    What's Changed

    • chore(deps-dev): bump @types/jest from 29.2.0 to 29.2.1 by @dependabot in https://github.com/react-native-menu/menu/pull/465
    • chore(deps-dev): bump @react-native-community/eslint-config from 3.1.0 to 3.2.0 by @dependabot in https://github.com/react-native-menu/menu/pull/468
    • chore(deps-dev): bump react-native from 0.64.1 to 0.64.4 by @dependabot in https://github.com/react-native-menu/menu/pull/471
    • chore(deps-dev): bump react-native-test-app from 2.0.0 to 2.0.2 by @dependabot in https://github.com/react-native-menu/menu/pull/472
    • fix: upgrade gradle version by @alantoa in https://github.com/react-native-menu/menu/pull/474
    • chore(deps-dev): bump jest from 29.2.2 to 29.3.1 by @dependabot in https://github.com/react-native-menu/menu/pull/473

    New Contributors

    • @alantoa made their first contribution in https://github.com/react-native-menu/menu/pull/474

    Full Changelog: https://github.com/react-native-menu/menu/compare/v0.7.1...v0.7.2

    Source code(tar.gz)
    Source code(zip)
  • v0.7.1(Nov 16, 2022)

    What's Changed

    • fix: remove jcenter() in favor of mavenCentral() by @mkilp in https://github.com/react-native-menu/menu/pull/464

    New Contributors

    • @mkilp made their first contribution in https://github.com/react-native-menu/menu/pull/464

    Full Changelog: https://github.com/react-native-menu/menu/compare/v0.7.0...v0.7.1

    Source code(tar.gz)
    Source code(zip)
  • v0.7.0(Oct 30, 2022)

    What's Changed

    • chore(deps-dev): bump jest from 29.1.2 to 29.2.0 by @dependabot in https://github.com/react-native-menu/menu/pull/455
    • chore(deps-dev): bump jest from 29.2.0 to 29.2.1 by @dependabot in https://github.com/react-native-menu/menu/pull/459
    • chore(deps-dev): bump @types/jest from 29.1.2 to 29.2.0 by @dependabot in https://github.com/react-native-menu/menu/pull/460
    • chore(deps-dev): bump eslint from 8.25.0 to 8.26.0 by @dependabot in https://github.com/react-native-menu/menu/pull/461
    • chore(deps-dev): bump jest from 29.2.1 to 29.2.2 by @dependabot in https://github.com/react-native-menu/menu/pull/462
    • feat: add displayInline for submenus in iOS by @fizhy37 in https://github.com/react-native-menu/menu/pull/463

    New Contributors

    • @fizhy37 made their first contribution in https://github.com/react-native-menu/menu/pull/463

    Full Changelog: https://github.com/react-native-menu/menu/compare/v0.6.0...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Oct 18, 2022)

  • v0.5.3(Sep 27, 2022)

  • v0.5.2(Sep 27, 2022)

    refactor: Use react-native-test-app to manage our test app (#142) Fix Lint Error and Android Build (#175) chore: update packages (#176) fix(iOS): action sheet empty title when property not defined (#255) fix(iOS): action sheet actions only fired first time (#254)

    Source code(tar.gz)
    Source code(zip)
  • v0.5.1(Sep 27, 2022)

  • v0.5.0(Jul 3, 2021)

  • v0.4.2(Jul 3, 2021)

    fix(#146,#70): android type mismatch (#148) @mateusz1913 fix: Clear menu actions when actions are set (#140) @sabymike fix: iOS test app compiles with Xcode 12.5 (#138) by @Saadnajmi

    docs: Update README to indicate issue exists on RN v0.63 and above (#145) @guytepper

    Source code(tar.gz)
    Source code(zip)
  • v0.4.1(May 13, 2021)

    fix(#105): Add ActionSheet support for iPad on OS versions less than 14 by @sabymike

    chore(deps-dev): bump @types/react from 17.0.3 to 17.0.4 (#94) chore(deps-dev): bump eslint from 7.24.0 to 7.25.0 (#91) chore(deps-dev): bump eslint-config-prettier from 8.2.0 to 8.3.0 (#92)

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(May 13, 2021)

    feat(#80): sub menus functionality (#81) by @mateusz1913

    chore(deps-dev): bump typescript from 4.2.3 to 4.2.4 (#79) chore(deps-dev): bump eslint from 7.22.0 to 7.24.0 (#83) chore(deps-dev): bump eslint-plugin-prettier from 3.3.1 to 3.4.0 (#85) chore(deps-dev): bump eslint-config-prettier from 8.1.0 to 8.2.0 (#84)

    Source code(tar.gz)
    Source code(zip)
  • v0.3.3(May 13, 2021)

  • v0.3.2(May 13, 2021)

  • v0.3.1(Mar 27, 2021)

  • v0.3.0(Mar 25, 2021)

    Option features for Android :tada:

    Screenshot_1616643634

    • feat(#57): android missing action properties, ios image color (#59) by @mateusz1913
    • docs: update screenshots (#62) @Naturalclar
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Mar 23, 2021)

  • v0.1.2(Nov 10, 2020)

    docs: updated installation document for RN 0.63 chore: fixed example app chore: Allow children to be rendered for unimplemented platforms so the UI would be remain the same.

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Nov 8, 2020)

  • v0.1.0(Nov 8, 2020)

Owner
null
A customizable and easy to use BottomBar navigation view with sleek animations, with support for ViewPager, ViewPager2, NavController, and badges.

AnimatedBottomBar A customizable and easy to use bottom bar view with sleek animations. Examples Playground app Download the playground app from Googl

Joery 1.2k Dec 30, 2022
An Android library that allows you to easily create applications with slide-in menus. You may use it in your Android apps provided that you cite this project and include the license in your app. Thanks!

SlidingMenu (Play Store Demo) SlidingMenu is an Open Source Android library that allows developers to easily create applications with sliding menus li

Jeremy Feinstein 11.1k Dec 21, 2022
Animations for Android L drawer, back, dismiss and check icons

Material Menu Morphing Android menu, back, dismiss and check buttons Have full control of the animation: Including in your project compile 'com.balysv

Balys Valentukevicius 2.5k Dec 30, 2022
Simple and easy to use circular menu widget for Android.

Deprecated This project is no longer maintained. No new issues or pull requests will be accepted. You can still use the source or fork the project to

Anup Cowkur 420 Nov 25, 2022
A multicard menu that can open and close with animation on android

MultiCardMenu A multicard menu that can open and close with animation on android,require API level >= 11 Demo ##Usage <net.wujingchao.android.view.

null 562 Nov 10, 2022
An Android Library that allows users to pull down a menu and select different actions. It can be implemented inside ScrollView, GridView, ListView.

AndroidPullMenu AndroidPullMenu is an Open Source Android library that allows developers to easily create applications with pull menu. The aim of this

Armando TBA 181 Nov 29, 2022
:fire: The powerful and easiest way to implement modern material popup menu.

PowerMenu ?? The powerful and easiest way to implement modern material popup menu. PowerMenu can be fully customized and used for popup dialogs. Downl

Jaewoong Eum 1k Dec 29, 2022
Kai Liao 2.2k Jan 3, 2023
A menu consisting of icons (ImageViews) and metaball bouncing selection to give a blob effect. Inspired by Material design

Metaball-Menu A menu consisting of icons (ImageViews) and metaball bouncing selection to give a blob effect. Inspired by Material design ScreenShot Us

AbYsMeL 198 Sep 15, 2022
🚀 A very customizable library that allows you to present menu items (from menu resource and/or other sources) to users as a bottom sheet.

SlidingUpMenu A library that allows you to present menu items (from menu resource and/or other sources) to users as a bottom sheet. Gradle Dependency

Rasheed Sulayman 26 Jul 17, 2022
Bottom Sheet fragment with a sticky header and a content recycler view

Sticky Header Bottom Sheet A simple library to create a Bottom Sheet with a sticky header and a content recycler view. The bottom sheet expands on scr

Kshitij Kumar 12 Sep 21, 2022
Bike-share - Jetpack Compose and SwiftUI based Kotlin Multiplatform sample project

BikeShare Jetpack Compose and SwiftUI based Kotlin Multiplatform sample project

Andrew Steinmetz 1 Feb 15, 2022
💧 A customizable jetpack compose dropdown menu with cascade and animations

Dropdown ?? A customizable jetpack compose dropdown menu with cascade and animations. Who's using Dropdown? ?? Check out who's using Dropdown Include

Ranbir Singh 192 Jan 4, 2023
Android-NewPopupMenu 3.9 0.0 Java is an android library to create popup menu with GoogleMusic app-like style.

Android-NewPopupMenu Android-NewPopupMenu is an android library to create popup menu with GoogleMusic app-like style. Requirements Tested with APIv4 H

u1aryz 159 Nov 21, 2022
BottomSheet-Android - A simple customizable BottomSheet Library for Android Kotlin

BottomSheet-Android A simple customizable BottomSheet Library for Android Kotlin

Munachimso Ugorji 0 Jan 3, 2022
an animated circular menu for Android

CircularFloatingActionMenu An animated, customizable circular floating menu for Android, inspired by Path app. Getting Started Requirements API >= 15

Oğuz Bilgener 2.7k Dec 24, 2022
A menu which can ... BOOM! - Android

BoomMenu 2.0.0 Comes Finally Approximately 8 months ago, I got an inspiration to creating something that can boom and show menu, which I named it Boom

Nightonke 5.8k Dec 27, 2022