An Android template with navigation drawer for material design

Overview

android-material-drawer-template

NEW

I released a new template. You can install it on your Android Studio to create Material Design applications easier than ever. Check it out here: https://github.com/kanytu/Android-studio-material-template


DEPRECATED I'm not currently supporting this repository. Please check Android Studio template for an updated material template for Android Studio.


An Android template with navigation drawer for material design

Customization

  • Change your drawer item on: drawer_row.xml
  • Make sure you change NavigationDrawerAdapter to populate the ViewHolder with the new xml layout.
  • If you want to set a different layout for the selected item refer to onBindViewHolder method on the NavigationDrawerAdapter
  • If you want to display more information on each row, like an image for example, change the NavigationItem and add what you need. Make sure you change it's constructor and edit also the getMenu() method on the fragment.

Reminders

  • Your activity must implement NavigationDrawerCallbacks
  • You must call NavigationDrawerFragment.setup() to setup the drawer.
  • You must <include/> the toolbar_default.xml in all your activities's XML and set it to the supportActionBar with setSupportActionBar(). Remember to extend the activity to ActionBarActivity

NavigationDrawer

Note

There are three example XML's for you activities. All them with diferent approaches on the navigation drawer pattern:

activity_main.xml Navigation drawer bellow the toolbar. (Google Inbox style)

NavigationDrawer

activity_main_blacktoolbar Navigation drawer bellow the toolbar, toolbar transition to black (Google Play Store style)

NavigationDrawer

activity_main_topdrawer Navigation drawer on top of the toolbar (Gmail style)

NavigationDrawer


There are also two XML's for the navigation drawer. You can alternate between these two by changing: (...) inflater.inflate(R.layout.fragment_navigation_google, container, false); on NavigationDrawerFragment:43

fragment_navigation_drawer Normal navigation drawer with just a RecyclerView. fragment_navigation_google Navigation drawer with the same theme as Google apps

Android Arsenal

License

Copyright (c) 2014 Pedro Oliveira

Licensed under the Apache License, Version 2.0

Comments
  • Using ScrimInsetLayout to display navigation drawer behind toolbar

    Using ScrimInsetLayout to display navigation drawer behind toolbar

    Is this possible? My code is as follows but it doesn't seem to work. The content is behind the status bar but I don't get the gray inset, just whatever color I set my status bar to i.e primarycolordark

    activity_main.xml

    <android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    
    android:fitsSystemWindows="true">
    
    <!-- Your normal content view -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <!-- We use a Toolbar so that our drawer can be displayed
             in front of the action bar -->
        <include layout="@layout/toolbar"/>
    
        <!-- The rest of your content view -->
        <FrameLayout
            android:id="@+id/container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />
    
    
    
    </LinearLayout>
    
        <!-- The navigation drawer -->
    
    
            <fragment
                android:id="@+id/fragment_drawer"
                android:name="example"
                android:layout_width="@dimen/drawer_width"
                android:layout_height="match_parent"
                android:layout_gravity="left|start"
                />
    
    
    </android.support.v4.widget.DrawerLayout> 
    

    fragment_drawer.xml

    <?xml version="1.0" encoding="utf-8"?>
    <uk.co.example.utils.ScrimInsetsFrameLayout xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrimInsetsFrameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:elevation="10dp"
        android:fitsSystemWindows="true"
        app:insetForeground="#4000">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/drawerList"
        android:layout_width="match_parent"
        android:clickable="true"
        android:focusableInTouchMode="true"
        android:scrollbars="vertical"
        android:focusable="true"
        android:layout_height="fill_parent"
        android:background="@color/nav_background"
    
        />
       </uk.co.example.utils.ScrimInsetsFrameLayout>
    

    MainActivity onCreate method

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            setContentView(R.layout.activity_main);
    
            ButterKnife.inject(this);
            setSupportActionBar(mToolbar);
    
            mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
            mDrawerLayout.setStatusBarBackgroundColor(
                    getResources().getColor(R.color.bayer_dark_green));
    
            mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer);
            mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), mToolbar);
        }
    

    styles-v21

    <style name="AppTheme.21" parent="AppTheme">
    
            <item name="android:windowDrawsSystemBarBackgrounds">true</item>
            <item name="android:statusBarColor">@android:color/transparent</item>
        </style>
    
    opened by demandedcross 11
  • need help for use with fragment

    need help for use with fragment

    sorry for question but i'm a noob in Android developpment, i try to follow my lesson when i have this :

           @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                     Bundle savedInstanceState) {
                View rootView = inflater.inflate(R.layout.fragment_main, container, false);
                Bundle args = getArguments();
                switch (args.getInt(ARG_SECTION_NUMBER)){
                    case 1:
                        rootView = inflater.inflate(R.layout.fragment_edit, container, false);
                    break;
                    case 2:
                        rootView = inflater.inflate(R.layout.fragment_search, container, false);
                        break;
                    case 3:
                        rootView = inflater.inflate(R.layout.fragment_quizz, container, false);
                        break;
                }
                return rootView;
            }
    

    for change fragment when i click on basic drawer fragment, i try this with your code :

        @Override
        public void onNavigationDrawerItemSelected(int position) {
            LayoutInflater inflater = getLayoutInflater();
            View rootView = inflater.inflate(R.layout.fragment_main, findViewById(R.id.container), false);
            switch (position){
                case 1:
                    rootView = inflater.inflate(R.layout.fragment_edit, container, false);
                    break;
                case 2:
                    rootView = inflater.inflate(R.layout.fragment_search, container, false);
                    break;
                case 3:
                    rootView = inflater.inflate(R.layout.fragment_quizz, container, false);
                    break;
            }
            return rootView;
            // update the main content by replacing fragments
            Toast.makeText(this, "Menu item selected -> " + position, Toast.LENGTH_SHORT).show();
        }
    

    but i don't know how i can have a Viewgroup for the inflater .

    Thank you for the time you use to read me.

    opened by thib3113 8
  • Drawer somehow disables onClickListener?

    Drawer somehow disables onClickListener?

    Added a couple of activities to the drawer list, made them implement NavigationDrawerCallbacks and added the part at the xml file. The activities open just fine, the drawer is working as it should.

    The only problem is that in both the activities I added, the button onClickListeners I had are not working. Everything is displayed properly but when I press the buttons nothing happens.

    The listeners are working properly without the drawer.

    help wanted 
    opened by tekniksinc 6
  • Where would nav item selection logic go?

    Where would nav item selection logic go?

    In this repo, when a navigation item is selected, the Main_activity just pops up a toast with that item's position, but I can't seem to figure out how to do more than that, things that actually affect the app's state.

    Right now I'm looking to just change the Toolbar's title to the app title when the nav drawer is open, then to the title of the currently selected menu when it's closed (like Google Play Music),

    I'm playing around with adding the code to onNavigationDrawerItemSelected (just for the second part of the problem), but get null pointers whenever I try to do something like getSupportActionBar().setTitle("Menu item" + position);

    Then extending on that, I'd like to be able to swap out the container frame's fragment when an item is selected. So if I have fragment_one and fragment_two, where would I go to define the code that says 'load fragment_one into container on menu 1 tap'?

    Perhaps a more complete example of an app that's using this template would really help.

    Thanks!

    help wanted 
    opened by dkisselev 5
  • Unresponsive Navigation Buttons on API 15, ICS

    Unresponsive Navigation Buttons on API 15, ICS

    This issue is not specific to API 15, it is just most apparent. I'm hoping for a fix that allows me to use the latest libraries.

    Issue Description

    When user selects an item in the navigation drawer, the item is momentarily highlighted but is not actually navigated to.

    video of issue happening

    Platforms Affected

    I've seen this on several versions of android including 5.1 to some degree. On these platforms, the issue wasn't so severe and it just seemed like I was missing the button more often then before.

    I then tried it on an API 15 device (ViewSonic VSD220) and found that I couldn't click any item in the list.

    On other platforms I've found it to be a less critical issue as I've said. Tested platforms include API 21, API 22, API 19, API 18, API 16

    Work-Around

    For my customers, I discovered a temporary work-around is to double-tap the item.

    How to Recreate

    Clone the android-material-drawer-template repository as is and run on an API 15 device.

    Issue Since

    d66cd0e905a120914894e947d055bdace8e2dbaa

    Fixes

    The only fix I've found so far is to roll back the support library version in build.gradle but then you also need to roll back the targetSdkVersion too. However, this breaks calls to viewholder.getAdapterPosition() in NavigationDrawerAdapter. Note that I have ruled out the other changes in commit d66cd0e905a120914894e947d055bdace8e2dbaa (As my project never used those) and the cause is definitely something in the support libraries.

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"
    
        defaultConfig {
            applicationId "com.poliveira.apps.materialtests"
            minSdkVersion 11
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:support-v4:21.0.3'
        //noinspection GradleDependency
        compile "com.android.support:appcompat-v7:21.0.3"
        compile 'com.android.support:recyclerview-v7:21.0.3'
    }
    
    bug 
    opened by Jonathan727 4
  • Selecting Items does not register a click or throws NPE

    Selecting Items does not register a click or throws NPE

    I've been using your Material Drawer implementation even before it was a template. Recently I've been experiencing this bug where clicking on a row item triggers it as selected but it does not go to the specified fragment. If I keep selecting items it throws the error below. Note that this is also present in a newly created project with this template.

    java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewGroup$LayoutParams android.view.View.getLayoutParams()' on a null object reference
                at android.support.v7.widget.OrientationHelper$2.getDecoratedStart(OrientationHelper.java:316)
                at android.support.v7.widget.LinearLayoutManager.findOneVisibleChild(LinearLayoutManager.java:1633)
                at android.support.v7.widget.LinearLayoutManager.findFirstVisibleChildClosestToStart(LinearLayoutManager.java:1453)
                at android.support.v7.widget.LinearLayoutManager.computeScrollOffset(LinearLayoutManager.java:997)
                at android.support.v7.widget.LinearLayoutManager.computeVerticalScrollOffset(LinearLayoutManager.java:969)
                at android.support.v7.widget.RecyclerView.computeVerticalScrollOffset(RecyclerView.java:1175)
                at android.view.View.canScrollVertically(View.java:12758)
                at android.support.v4.view.ViewCompatICS.canScrollVertically(ViewCompatICS.java:35)
                at android.support.v4.view.ViewCompat$ICSViewCompatImpl.canScrollVertically(ViewCompat.java:940)
                at android.support.v4.view.ViewCompat.canScrollVertically(ViewCompat.java:1237)
                at android.support.v7.widget.RecyclerView$LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6594)
                at android.support.v7.widget.RecyclerView$LayoutManager.onInitializeAccessibilityEvent(RecyclerView.java:6573)
                at android.support.v7.widget.LinearLayoutManager.onInitializeAccessibilityEvent(LinearLayoutManager.java:204)
                at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate.java:66)
                at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:228)
                at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:56)
                at android.view.View.onInitializeAccessibilityEvent(View.java:5422)
                at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5295)
                at android.view.View$AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:20786)
                at android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatIcs.java:117)
                at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:210)
                at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:358)
                at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:255)
                at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatJellyBean.java:82)
                at android.view.View.sendAccessibilityEventUnchecked(View.java:5280)
                at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.run(ViewRootImpl.java:6951)
                at android.view.ViewRootImpl$SendWindowContentChangedAccessibilityEvent.runOrPost(ViewRootImpl.java:6977)
                at android.view.ViewRootImpl.postSendWindowContentChangedCallback(ViewRootImpl.java:6138)
                at android.view.ViewRootImpl.notifySubtreeAccessibilityStateChanged(ViewRootImpl.java:6251)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.ViewGroup.notifySubtreeAccessibilityStateChanged(ViewGroup.java:2788)
                at android.view.View.notifySubtreeAccessibilityStateChangedIfNeeded
    
    opened by angelofrancisco 4
  • Nav drawer icon problem in fragment replace

    Nav drawer icon problem in fragment replace

    I was using replace the container with fragment. I want when replace the fragment, the nav drawer icon from hamburger change to back arrow, when user on back press, the nav icon turn back to hamburger. Below is my code.

    public void setActionBarArrowDependingOnFragmentsBackStack() {
        int backStackEntryCount = getActivity().getSupportFragmentManager().getBackStackEntryCount();
     if(backStackEntryCount >= 1) {
           ((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
       }
    

    It should turn back to hamburger icon when the backstackentrycount less than 1. But it not able to turn back. Is that i miss out any code? Thanks a lot if you can help me.

    opened by cj7 4
  • RTL support

    RTL support

    Hi there,

    I'm a beginner at Android development. I can't seem to find an easy way to insert RTL support for the navigation drawer. I've inserted the option android:supportsRtl="true" in the manifest and tried this but the function no longer accepts integer. I'm not sure how to overcome this.

    Will this feature be easy to implement?

    enhancement 
    opened by khalid-hussain 4
  • select item problem #1

    select item problem #1

    nexus 4 - 4.4.4 https://github.com/kanytu/android-material-drawer-template/blob/master/app/src/main/java/com/poliveira/apps/materialtests/NavigationDrawerAdapter.java#L43

    https://www.youtube.com/watch?v=o6jYoEeF8n4&feature=youtu.be

    opened by slr560 4
  • How to select menu position when using popBackStack?

    How to select menu position when using popBackStack?

    Hi, newbie here.

    Let say I have 3 menus (Menu 1, Menu 2, Menu 3)

    Then in onNavigationDrawerItemSelected I use addToBackStack for each menu.

    After run the app, I select the Menu 2, then I hit the back button, it will show Menu 1 but drawer still highlighting Menu 2.

    How to change the drawer highlight?

    I know by using selectPosition, but how to get the position?

    opened by zakiharis 3
  • There is some lag for the first time when you select a option from navigation drawer

    There is some lag for the first time when you select a option from navigation drawer

    Test case : step 1) Select a item in the navigation drawer (Navigation Drawer opens perfectly) step 2) Open Navigation drawer and select another item in the list step 3) Now Open the Navigation Drawer

    In step the Navigation drawer stops a bit and opens , its not as smooth as in the step 1

    Is this issues only for me or for every one ?

    Whats the solution for the issue ?

    opened by sanathp 3
  • How to add callback on home button is pressed?

    How to add callback on home button is pressed?

    Try change home button with mNavigationDrawerFragment.showBackButton() for back to previous fragment but how to trigger on button is pressed and prevent open drawer? onOptionsItemSelected(MenuItem item) does not work.

    opened by yhojann-cl 1
  • Make Menu Icons Invisable when Navigation Drawer is open (Fragments of ViewPager)

    Make Menu Icons Invisable when Navigation Drawer is open (Fragments of ViewPager)

    Hello! First of all thank you for this great project!

    I have some problems and I hope you know solution. I have MainActivity with ViewPager which had 3 Fragment. Each Fragment has there own menu items in toolbar. Inside of my MainActivity I added your beautiful Navigation drawer. I want to make menu icons in toolbar invisable when Navigation Drawer is open. (no matter what fragment open)

    In your project you used it: @Override public boolean onCreateOptionsMenu(Menu menu) { if (!mNavigationDrawerFragment.isDrawerOpen()) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return false; } return super.onCreateOptionsMenu(menu); }

    Unfortunatly I have 3 menu files for each fragment and I am little bit comfused how to set all of them here. I experemented but I have no results. How I can fix it?

    My second question is about customization of Navigation Drawer. Inside of NavigationDrawerFragment we have Navigation items list but how to add dividers between items. I want to make something like sections inside of Navigation drawer. It is little bit problematically with that list.

    Thank you again for project! Have a nice day! Gob bless you!

    opened by nurzhannogerbek 6
  • wrong height for toolbar in landscape

    wrong height for toolbar in landscape

    If you try to rotate the device in landscape mode, you will notice that the app_title is not centered.

    the solution is this:

    in action_main.xml replaced with :

    <include
        android:id="@+id/toolbar_actionbar"
        layout="@layout/toolbar_default"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize" />
    

    and in toolbar_default.xml

    <android.support.v7.widget.Toolbar 
        xmlns:android="http://schemas.android.com/apk/res/android"
        style="@style/ToolBarStyle"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary" />
    
    opened by matpag 5
  • java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling

    java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling

    I've seen this crash a few times while using the navigation drawer.

    java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
            at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:1462)
            at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeChanged(RecyclerView.java:3000)
            at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:7503)
            at android.support.v7.widget.RecyclerView$Adapter.notifyItemChanged(RecyclerView.java:4353)
            at com.company.busscan.navigation.NavigationDrawerAdapter.touchPosition(NavigationDrawerAdapter.java:97)
            at com.company.busscan.navigation.NavigationDrawerAdapter.access$000(NavigationDrawerAdapter.java:24)
            at com.company.busscan.navigation.NavigationDrawerAdapter$1.onTouch(NavigationDrawerAdapter.java:64)
    

    Trace mentions this chunk of code from NavigationDrawerAdapter:

    private void touchPosition(int position) {
        int lastPosition = mTouchedPosition;
        mTouchedPosition = position;
        if (lastPosition >= 0)
            notifyItemChanged(lastPosition);
        if (position >= 0)
            notifyItemChanged(position);
    }
    

    and the ACTION_CANCEL case here too:

        viewHolder.itemView.setOnTouchListener(
                new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
    
                        switch (event.getAction()) {
                            case MotionEvent.ACTION_DOWN:
                                touchPosition(i);
                                return false;
                            case MotionEvent.ACTION_CANCEL:
                                touchPosition(-1);
                                return false;
                            case MotionEvent.ACTION_MOVE:
                                return false;
                            case MotionEvent.ACTION_UP:
                                touchPosition(-1);
                                return false;
                        }
                        return true;
                    }
                }
        );
    

    Also, I'm curious whether I should expect any changes now that the support library revision 22 has added new recycler view methods getlayoutPosition() and getadapterPosition()

    opened by Jonathan727 4
Owner
Pedro Oliveira
Pedro Oliveira
Android drawer icon with material design animation

LDrawer Android drawer icon with material design animation Note Basically same as appcompat_v7 version 21, you can use appcompat_v7 compile 'com.andro

Hasan Keklik 1.4k Dec 25, 2022
Android drawer icon with material design animation

LDrawer Android drawer icon with material design animation Note Basically same as appcompat_v7 version 21, you can use appcompat_v7 compile 'com.andro

Hasan Keklik 1.4k Dec 25, 2022
Custom drawer implementation for Material design apps.

material-drawer Custom drawer implementation for Material design apps. Demo A demo app is available on Google Play: Screenshots Fixed items Select pro

Jan Heinrich Reimer 600 Nov 18, 2022
A Gmail-like Material Drawer implementation

AdvancedMaterialDrawer A Gmail-like Material Drawer implementation Based on neokree's MaterialDrawer library, but they are not the same. I have made m

Marc Schäfers 200 Oct 27, 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
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
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
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
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
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
[] Android Library that implements Snackbars from Google's Material Design documentation.

DEPRECATED This lib is deprecated in favor of Google's Design Support Library which includes a Snackbar and is no longer being developed. Thanks for a

null 1.5k Dec 16, 2022
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
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 Jan 3, 2023
A library support form with material design, construct same with Android UI Framework

SwingUI A slight Java Swing library support form with material design, construct same with Android UI Framework writen in Kotlin Supported: 1. Screen:

Cuong V. Nguyen 3 Jul 20, 2021
Android Material Design Components

Android-Material-Design-Components Material design is a comprehensive guide for visual, motion, and interaction design across platforms and devices. G

Velmurugan Murugesan 3 Jun 10, 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
A gradle plugin that generates Material Design 3 theme for Android projects.

Same as Google's Material Theme Builder, but as a gradle plugin.

Rikka apps 41 Dec 6, 2022
Material Design icons by Google

Material design icons Material design icons is the official icon set from Google. The icons are designed under the material design guidelines. 4.0.0 U

Google 47.1k Jan 9, 2023