😍 A beautiful, fluid, and extensible dialogs API for Kotlin & Android.

Overview

Material Dialogs

View Releases and Changelogs

Android CI Codacy Badge License


Showcase

Modules

The core module is the fundamental module that you need in order to use this library. The others are extensions to core.

Please note that since Material Dialogs 2.x.x, this library only supports Kotlin. The latest Java version is 0.9.6.0 and can be found here. Note that 0.9.6.0 is unsupported, bugs & improvements will not be made to that version.

Core

Core

Core Tutorial and Samples

The core module contains everything you need to get started with the library. It contains all core and normal-use functionality.

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:core:3.3.0'
}

Input

Input

Input Tutorial and Samples

The input module contains extensions to the core module, such as a text input dialog.

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:input:3.3.0'
}

Files

Files

Files Tutorial and Samples

The files module contains extensions to the core module, such as a file and folder chooser.

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:files:3.3.0'
}

Color

Color

Color Tutorial and Samples

The color module contains extensions to the core module, such as a color chooser.

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:color:3.3.0'
}

DateTime

DateTime

DateTime Tutorial and Samples

The datetime module contains extensions to make date, time, and date-time picker dialogs.

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:datetime:3.3.0'
}

Bottom Sheets

Bottom Sheets

Bottom Sheets Tutorial and Samples

The bottomsheets module contains extensions to turn modal dialogs into bottom sheets, among other functionality like showing a grid of items. Be sure to checkout the sample project for this, too!

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:bottomsheets:3.3.0'
}

Lifecycle

Lifecycle

Lifecycle Tutorial and Samples

The lifecycle module contains extensions to make dialogs work with AndroidX lifecycles.

dependencies {
  ...
  implementation 'com.afollestad.material-dialogs:lifecycle:3.3.0'
}
Comments
  • Switch to ListView + ListAdapter for dialog lists

    Switch to ListView + ListAdapter for dialog lists

    This pull request is somewhat big, and switches over the list implementation to a ListView + ListAdapter style.

    This accomplishes two important things:

    • It brings the API to be more in line with a real dialog (think setAdapter() and getListView())
    • Dramatically improves list scrolling performance due to not inflating all views upfront.

    The basic structure of this is that it uses a new in-house adapter called MaterialDialogAdapter for first-party list options (single, multi, and regular). For custom adapters (set via .adapter() in the Builder), it delegates their logic to the user's implementation (like a real dialog!).

    This also improved performance of handling callbacks, as now we can retrieve the item directly rather than iterate over the inflated views to find the selected one.

    Here's a short screen record going through the list items in the sample: https://www.dropbox.com/s/gs8qn6ytrktrc6d/device-2014-12-01-182852.mp4?dl=0

    NOTE: This removes the ItemProcessor API, as it's now unnecessary since users can build the dialog with their own (much more flexible) adapter.

    I made a couple other minor changes when I saw them, like c2ad109

    opened by ZacSweers 19
  • WIP Color chooser custom ARGB selection

    WIP Color chooser custom ARGB selection

    I added a simple argb color selector and fixed this bug: https://github.com/afollestad/material-dialogs/issues/1627

    I kept it quite simple, let me know what you think of it

    improvement 
    opened by MFlisar 16
  • Respect theme's textAllCaps setting

    Respect theme's textAllCaps setting

    Lollipop's alert dialogs respect the current theme's android:textAllCaps attribute. It would be great if these did too. I don't know if there is any other way to override this.

    opened by shekibobo 11
  • Refactor padding to be more efficient

    Refactor padding to be more efficient

    The previous setup was causing lag when showing or updating the dialog, because it needed to wait until everything was laid out before adjusting the padding, which would trigger a second layout.

    This method uses a custom ViewGroup (MDRootLayout) which determines padding and button stacking onMeasure.

    Changes were also made with how the padding was split up, to avoid having to move padding between views.

    opened by teslacoil 9
  • Added option to set maximum icon size

    Added option to set maximum icon size

    This pull request allows setting maximum icon size through the following methods:

    • to a default limit of 32dp (based from the platform AlertDialog)
      • limitIconToDefaultSize() builder method
      • md_icon_limit_icon_to_default_size global theme attribute
    • to a specified maximum size
      • maxIconSize(int maxIconSize) builder method
      • md_icon_max_size global theme attribute

    This feature was requested in #297.

    opened by lordcodes 8
  • Fix vibrating windows

    Fix vibrating windows

    Some windows with just the right amount of scrollable content would trigger the removal of the bottom margin, however the new layout pass would show that the content is no longer scrollable so the bottom margin would be reenabled. This would cause the window to continously vibrate up and down.

    This fix verifies the available space before adding the margin, and doesn't add it, if it would cause the content to scroll.

    opened by teslacoil 8
  • Custom Theme Enabled

    Custom Theme Enabled

    https://github.com/afollestad/material-dialogs/issues/100 Added some global attributes such as

    <item name="md_custom_theme">true</item>
    <item name="md_bg_color">#673AB7</item>
    <item name="md_divider_color">#673AB7</item>
    <item name="md_selector">@drawable/selector</item>
    <item name="md_btn_selector">@drawable/selector</item>
    

    New attribute md_bg_color, md_divider_color, md_selector, md_btn_selector will be enabled only if md_custom_theme is true.

    We can also set new attributes programmatically.

    public Builder backgroundColor(int color)
    public Builder backgroundColorRes(@ColorRes int colorRes)
    public Builder dividerColor(int color) 
    public Builder dividerColorRes(@ColorRes int colorRes)
    public Builder selector(@DrawableRes int selector)
    public Builder btnSelector(@DrawableRes int btnSelector)
    

    If we don't set default for each attribute while using custom dialog, the default light or dark theme will be set as default. For example, when md_dark_theme is true and md_custom_theme is also true, but md_bg_color hasn't set yet, the background color might follow background color of md_dark_theme.

    opened by TheFinestArtist 7
  • Added EditText to the dialog

    Added EditText to the dialog

    This pull request adds an EditText to the dialog.

    • Turn it on through a Builder method.
    • Specify EditText hint
    • Provide a default value to pre-fill the EditText with
    • Set a TextWatcher on the EditText to be informed of changes to the text
    • Provide a callback to be informed of the text when the positive button is pressed
    • Perform input validation on the entered text
      • Provide a validator class to use
      • Specify an error message to display when the input is invalid
      • Error appears as message below the EditText, there is option to instead display it in little popup with error icon (standard EditText setError(String) method.
    • EditText is tinted (color filter used for pre-Android 5).
    opened by lordcodes 6
  • Builder.customViewRaw to bypass default ScrollView and padding

    Builder.customViewRaw to bypass default ScrollView and padding

    Title bar no longer scrolls with custom content There is no longer a seperate titlebarframe for custom content Added top divider when content scrolls

    It's a bit of an invasive change so let me know if it breaks anything or something isn't done in the style you'd prefer.

    Fixes https://github.com/afollestad/material-dialogs/issues/45

    opened by teslacoil 6
  • Fixed issue with callbacks not being called when there was no positive button...

    Fixed issue with callbacks not being called when there was no positive button...

    ... but there were other action buttons. If there is a positive button it will be used to trigger the callbacks. But when it is not present, the callbacks need to be called on each change produced by a click since no click on a positive button will trigger them.

    opened by jrgonzalezg 5
  • Add support for 'About Libraries' Android library

    Add support for 'About Libraries' Android library

    This is to support About Libraries, a library to facilitate listing dependencies. Your project is currently embedded in that project, which means the version number needs to be manually changed. Having it in your project directly along with the resValue in gradle will make this automatic.

    These resources will be removed if users have proguard. Those who choose to use about libraries with proguard will keep the R classes to resolve that.

    Attached below is an example of how it looks. (Note that the UI can be customized, but the text will be the same throughout projects)

    screenshot_20170723-123845

    opened by AllanWang 4
  • Add renovate.json

    Add renovate.json

    Guidelines

    1. You must run the spotlessApply task before commiting, either through Android Studio or with ./gradlew spotlessApply.
    2. A PR should be focused and contained. If you are changing multiple unrelated things, they should be in separate PRs.
    3. A PR should fix a bug or solve a problem - something that only you would use is not necessarily something that should be published.
    4. Give your PR a detailed title and description - look over your code one last time before actually creating the PR. Give it a self-review.

    If you do not follow the guidelines, your PR will be rejected.

    opened by jen801 0
  • BottomSheet bugfixes (crash, animation)

    BottomSheet bugfixes (crash, animation)

    Feel free to only merge the bottom sheet changes and the dismiss change.

    This does fix following issue: https://github.com/afollestad/material-dialogs/issues/2076

    Changes

    • Updated MaterialDialog dismiss function to make sure it's only called if the activity is not being finished (only if it is attached to an activity and only on android API >= 17)
    • Updated BottomSheet to allow to enable/disable animation and to allow to define an initial state (half expanded, full expanded) => animation must be disabled inside a DialogFragment because this fragment will call onShow after screen rotation and also after screen off/on => this leads to collapsed sheets sometimes and to repeated animations on every screen on/off => if animation is disabled, everything works perfectly fine inside a DialogFragment as well now

    Additionally I would have also done following:

    • updated gradle to 7.2
    • made the project jitpack compatible again after update to gradle 7 (forks can be retrieved easily via jitpack now)
    • made the project compatible to include it as local fork
      • added a "namespace" to all modules (prefix md)
      • made gradle definitions relative to project instead of root project

    TODO after merge (seems like you do not merge anything anymore, but still here are the steps to undo my "special" changes)

    • Change the maven config back to yours: https://github.com/MFlisar/material-dialogs/blob/b8f8203513466b1c30dc8046ef5e61a3e61495b5/gradle/android_library_config.gradle#L6-L9
    • Enable spotless again (I don't use spotless and so I disabled this plugin, it does not work out of the box in a local fork the way its set up in your repo) https://github.com/MFlisar/material-dialogs/blob/b8f8203513466b1c30dc8046ef5e61a3e61495b5/gradle/android_common_config.gradle#L6

    Note

    If someone else wants to use it already, it's already published on jitpack and can be used like following:

    implementation "com.github.MFlisar.material-dialogs:core:3.3.0-1"
    ....
    
    opened by MFlisar 0
  • Increase title, message and button text sizes in tablet screens

    Increase title, message and button text sizes in tablet screens

    Updated the sw600dp dimens.xml file to make the dialog's text readable in a tablet's screen. New text size was tested in several tablets.

    Guidelines

    1. You must run the spotlessApply task before commiting, either through Android Studio or with ./gradlew spotlessApply.
    2. A PR should be focused and contained. If you are changing multiple unrelated things, they should be in separate PRs.
    3. A PR should fix a bug or solve a problem - something that only you would use is not necessarily something that should be published.
    4. Give your PR a detailed title and description - look over your code one last time before actually creating the PR. Give it a self-review.

    If you do not follow the guidelines, your PR will be rejected.

    opened by daehan-lim 0
  • Changed logic regarding minDate and maxDate in dateTime module to allow currentDate to be equal to one of them

    Changed logic regarding minDate and maxDate in dateTime module to allow currentDate to be equal to one of them

    Guidelines

    1. You must run the spotlessApply task before commiting, either through Android Studio or with ./gradlew spotlessApply.
    2. A PR should be focused and contained. If you are changing multiple unrelated things, they should be in separate PRs.
    3. A PR should fix a bug or solve a problem - something that only you would use is not necessarily something that should be published.
    4. Give your PR a detailed title and description - look over your code one last time before actually creating the PR. Give it a self-review.

    If you do not follow the guidelines, your PR will be rejected.

    PR Description

    Changed logic regarding minDate and maxDate in dateTime module to allow currentDate to be equal to one of them. This is to make it possible to have two dates as allowed dates, and preselect one of them, which was not possible before. The user was able to select one of the two dates, but the code was not allowing preselection of the dates. For example with these dates:

    minDate = 2021.01.01
    maxDate = 2021.01.02
    currentDate = 2021.01.01
    
    opened by peter-witt 0
  • Fix Issues #2036 and #1973: Changed currentDate comparisons to minDate and maxDate to be inclusive

    Fix Issues #2036 and #1973: Changed currentDate comparisons to minDate and maxDate to be inclusive

    Issues #2036 and #1973 refer to crashes when minDate or maxDate are equal to currentDate in the datetime module datePicker. This request changes the checks for minDate and maxDate validity to allow for these dates to also be the currentDate.

    opened by gobrien37 1
Releases(3.3.0)
  • 3.3.0(Feb 18, 2020)

    • Added md_line_spacing_body global theme attribute, which sets a global default for message line spacing. See #1903.
    • Added some assertions and sanity checks to avoid choice list adapter out of bounds crashes. See #1906.
    • Corner radius should not apply to the bottom of bottom sheet dialogs. See #1941.
    • Fix dialog titles being cut off with custom fonts. See #1936.
    • If noVerticalPadding is set with customView(...), padding is not applied to the bottom of the content ScrollView if scrollable is enabled. Resolves #1834.
    • Input dialog styling is not enforced by the dialog. The global default for TextInputLayout (textInputStyle) is used instead. See #1857.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.1(Feb 8, 2020)

    • Fixed the module-name given to the Kotlin compiler for each Gradle module, should fix extension function resolution issues.

    3.2.0

    • Dependency upgrades.
    • Reduce single/multi choice list dialog margin between text and controls.
    • Fix updateTextColor(Int) on action buttons not always persisting. See #1783.
    • Fix corner radius not working when views have a background. See #1840.
    • All dialogs will have a default corner radius of 4dp. See #1909.
    • Non-cancelable bottom sheet dialogs cannot be swiped to dismiss.
    • Other minor changes.
    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Feb 8, 2020)

    • Dependency upgrades.
    • Reduce single/multi choice list dialog margin between text and controls.
    • Fix updateTextColor(Int) on action buttons not always persisting. See #1783.
    • Fix corner radius not working when views have a background. See #1840.
    • All dialogs will have a default corner radius of 4dp. See #1909.
    • Non-cancelable bottom sheet dialogs cannot be swiped to dismiss.
    • Other minor changes.
    Source code(tar.gz)
    Source code(zip)
  • 3.1.1(Sep 4, 2019)

  • 3.1.0(Jul 2, 2019)

    • Upgraded afollestad/date-picker library to 0.6.1.
    • The updateListItems(...) method has been split into three variants so that a new listener can be passed for plain, single, and multi-choice list dialogs.
    • Add horizontalPadding boolean parameter to customView(...) - when true, 24dp padding is added to the left and right of your custom view.
    Source code(tar.gz)
    Source code(zip)
    sample.apk(3.25 MB)
  • 3.0.2(Jun 29, 2019)

  • 3.0.1(Jun 27, 2019)

    • Set module names for the Kotlin compiler, so that they don't clash with other third party libs.
    • The module name for the newer date-picker dependency is also being set now, so your app won't have to exclude its module file.
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Jun 25, 2019)

  • 3.0.0-rc4(Jun 15, 2019)

  • 3.0.0-rc3(Jun 8, 2019)

  • 3.0.0-rc2(Jun 6, 2019)

  • 3.0.0-rc1(May 31, 2019)

  • 3.0.0-beta2(May 20, 2019)

  • 3.0.0-beta1(May 19, 2019)

  • 3.0.0-alpha4(May 19, 2019)

    Minor API change: The message(...) function no longer provides html and lineSpacingMultiplier as parameters. Instead, it works like this:

    MaterialDialog(this).show {
      ...
      message(R.string.htmlContent) {
          html() // or...
          html { toast("Clicked link: $it") }
          
          lineSpacing(1.4f)
          messageTextView.doSomething() // you can act directly on the TextView
      }
    }
    
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-alpha3(May 17, 2019)

    • The BottomSheet() dialog behavior now accepts an optional LayoutMode parameter, which you can use to instruct the bottom sheet to be expandable to the screen height or limit itself to wrap the content of its content. See the updated Bottom Sheets documentation.
    • Added a setPeekHeight(...) extension method for MaterialDialog that you can use to set the default peek height and animate peek height changes.
    Source code(tar.gz)
    Source code(zip)
    sample.apk(3.14 MB)
  • 3.0.0-alpha2(May 15, 2019)

  • 3.0.0-alpha1(May 8, 2019)

  • 2.8.1(Apr 18, 2019)

    1. Make some classes internal which don't need to be exposed to consumers.
    2. Allow plain date and time dialogs to require a future date/time, like the datetime dialog does.
    3. When the datetime dialogs require a future time, the action button is auto-invalidated when the system time changes.

    In 2.8.0:

    1. Kotlin 1.3.30.
    2. Add an updateListItems(...) method to update plain/single/multi-choice items after dialog creation.
    3. Fix datetime dialog layouts looking uncentered by only applying dialog width wrap in landscape.
    4. Other bug fixes and tweaks.
    Source code(tar.gz)
    Source code(zip)
  • 2.8.0(Apr 18, 2019)

    1. Kotlin 1.3.30.
    2. Add an updateListItems(...) method to update plain/single/multi-choice items after dialog creation.
    3. Fix datetime dialog layouts looking uncentered by only applying dialog width wrap in landscape.
    4. Other bug fixes and tweaks.
    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(Apr 6, 2019)

    1. Undid dialog max width changes again, to what they were before they looked small. Added maxWidth setter function that you can use to custom dialog max widths if you wish, although it's discouraged.
    2. Added a dialogWrapContent parameter to customView(...) which instructs the dialog to set its max width to the measured width of your custom view.
    3. The datetime dialogs use the dialogWrapContent parameter above, which fixes how they look in landscape etc.
    4. You can set a maxDate for date picker dialogs.
    5. Misc. bug fixes and code cleanup.
    Source code(tar.gz)
    Source code(zip)
  • 2.6.0(Mar 26, 2019)

    1. Added md_color_widget_unchecked attribute to compliment the previously added md_color_widget attribute.
    2. Fixed time and datetime pickers not handling default time correctly. See #1766.
    3. Use JDK 8 version of the Kotlin plugin dependency.
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Mar 23, 2019)

    1. Added md_color_widget theme attribute to apply custom coloring to checkbox prompts and controls in single/multi-choice lists.
    2. Fix the list selection callback in plain lists when waitForPositiveButton=false. See #1751.
    Source code(tar.gz)
    Source code(zip)
  • 2.4.0(Mar 20, 2019)

    1. Fix action button selectors being cut off on the bottom, see #1759.
    2. Re-applied smaller dialog max width values to match the Material spec.
    3. Fix vertical spacing on datetime dialogs when there is no dialog title, see #1757.
    4. Fixed neutral button positioning, although you still should prefer to not use it.
    5. Use semi-transparent primary theme color for the ripple of action buttons on API 21+.
    Source code(tar.gz)
    Source code(zip)
    sample.apk(3.09 MB)
  • 2.3.0(Mar 19, 2019)

    datetime no longer has a dependency on ThreetenBP. Uses Java's Calendar instead. Sorry to those who are already using it with LocalDateTime.

    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(Mar 18, 2019)

    1. Added a datetime module which provides date, time, and date/time selector dialogs.
    2. Reverted dialog max-width values to the previous values.
    3. Action buttons should use the primary theme color by default per the newer specs.
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Mar 16, 2019)

    1. Fix layout issues with action buttons and content views (to match Material Spec correctly, again). To visualize this, call debugMode(true) on your dialogs before opening them.
    2. Dependency upgrades.
    3. A new lifecycle module is available, which for now just adds an extension method to auto close dialogs when a lifecycle owner is destroyed. Check out the README for details. (will be available through jCenter shortly)
    4. Fixed background fill color on input field of input dialogs when using alpha versions of Material Components alongside this lib.
    Source code(tar.gz)
    Source code(zip)
    sample.apk(3.08 MB)
  • 2.0.3(Feb 26, 2019)

  • 2.0.2(Feb 25, 2019)

  • 2.0.1(Feb 25, 2019)

    1. Fix input dialog button enabled invalidation logic when using max length and allowEmpty=false.
    2. Include ColorPalette class in the color module, which provides primary and accent colors to use in the color chooser dialogs.
    3. Added a theme attribute you can use in your app to not use all caps in action buttons.
    4. Fix an input dialog crash.
    Source code(tar.gz)
    Source code(zip)
Owner
Aidan Follestad
25 years old. Senior Android Engineer @square. Apple fan. Full stack (Android, iOS, web, backend). Triumph Street Triple RS, Tesla Model 3. Gamer (PS5). Metal.
Aidan Follestad
An Android library aimed to get the beautiful CardViews that Google shows at its official design specifications

MaterialList Discontinued This library will not receive any updates, as I do not have the time or knowledge to improve it. If anyone forks it and want

null 1.6k Nov 29, 2022
A beautiful notes app

Background Although there are many notes apps out there, they're all hideous, glitchy, low quality or all 3 at the same time. Maybe the developer view

Om Godse 1k Jan 7, 2023
Implementation of Ripple effect from Material Design for Android API 9+

RippleEffect ExpandableLayout provides an easy way to create a view called header with an expandable view. Both view are external layout to allow a ma

Robin Chutaux 4.9k Dec 30, 2022
Provides 9-patch based drop shadow for view elements. Works on API level 9 or later.

Material Shadow 9-Patch This library provides 9-patch based drop shadow for view elements. Works on API level 14 or later. Target platforms API level

Haruki Hasegawa 481 Dec 19, 2022
Default colors and dimens per Material Design guidelines and Android Design guidelines inside one library.

Material Design Dimens Default colors and dimens per Material Design guidelines and Android Design guidelines inside one library. Dimens Pattern: R.di

Dmitry Malkovich 1.4k Jan 3, 2023
MaterialPickers-in-android - A simple android project that shows how to create material pickers for date and time

MaterialPickers-in-android A simple android project that shows how to create mat

Segun Francis 2 Apr 28, 2022
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.

Carbon Material Design implementation for Android 4.0 and newer. This is not the exact copy of the Lollipop's API and features. It's a custom implemen

null 3k Jan 9, 2023
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 Jan 3, 2023
Android Sample Project with Material Design and Toolbar.

AndroidMaterialDesignToolbar -- PROJECT IS NOT SUPPORTED Android Sample Project with Material Design and Toolbar. Project use Appcompat library for ma

kemal selim tekinarslan 713 Nov 11, 2022
Modular and customizable Material Design UI components for Android

Material Components for Android Material Components for Android (MDC-Android) help developers execute Material Design. Developed by a core team of eng

Material Components 14.4k Dec 31, 2022
Easy creation and management of toggle buttons on Android from the Material Design spec.

ToggleButtonLayout Easy creation and management of toggle buttons from the Material Design spec. Read more about ToggleButtonLayout in our blog post.

Savvy 229 Jan 9, 2023
An android application that allows its users to download and set different images as their wallpapers either on the home screen, lock screen or both.

UHD Wallpapers This an android application show cases different sets of images from unsplash and allows its users to download and set them as wallpape

null 2 Oct 31, 2022
Navigation Drawer Activity with material design style and simplified methods

MaterialNavigationDrawer Navigation Drawer Activity with material design style and simplified methods       It requires 10+ API and android support v7

Fabio Biola 1.6k Jan 5, 2023
A demo of the power menu with Reveal and other animations

MaterialPowerMenu A demo of the power menu with Reveal and other animations Some days ago, I saw a gif on Google+ demonstating a concept of Android Po

Naman Dwivedi 888 Oct 11, 2022
This is a library with components of Android L to you use in android 2.2

Material Design Android Library How to use Components Buttons Flat Button Rectangle Button Float Button Float small button Switches CheckBox Switch Pr

Ivan Navas 9.1k Jan 5, 2023
Material Shadows for android : A library for supporting convex material shadows

MaterialShadows A library for seamlessly integrating Material shadows. The library takes existing material shadows to next level by adding the followi

Harjot Singh Oberai 2.2k Dec 19, 2022
A library to bring fully animated Material Design components to pre-Lolipop Android.

Material MaterialLibrary is an Open Source Android library that back-port Material Design components to pre-Lolipop Android. MaterialLibrary's origina

Rey Pham 6k Dec 21, 2022
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.

MaterialDrawer ... the flexible, easy to use, all in one drawer library for your Android project. What's included ?? • Setup ??️ • Migration Guide ??

Mike Penz 11.6k Dec 27, 2022
Floating Action Button for Android based on Material Design specification

FloatingActionButton Yet another library for drawing Material Design promoted actions. Features Support for normal 56dp and mini 40dp buttons. Customi

Zendesk 6.4k Dec 26, 2022