{"id":14979966,"url":"https://github.com/shiburagi/drawer-behavior","last_synced_at":"2025-04-12T14:56:43.006Z","repository":{"id":46589475,"uuid":"104445551","full_name":"shiburagi/Drawer-Behavior","owner":"shiburagi","description":"Drawer behavior is a library that provide an extra behavior on drawer, such as, move view or scaling view's height while drawer on slide.","archived":false,"fork":false,"pushed_at":"2021-05-31T13:57:15.000Z","size":16084,"stargazers_count":589,"open_issues_count":4,"forks_count":103,"subscribers_count":16,"default_branch":"v1.0","last_synced_at":"2025-04-03T14:11:03.969Z","etag":null,"topics":["android","android-application","android-development","android-library","android-ui","card","drawer","drawer-android","drawer-layout","drawer-navigation","drawerlayout","drawernavigator","gradle","navigation-drawer","scale","slide","ui","ui-components"],"latest_commit_sha":null,"homepage":"https://shiburagi.github.io/Drawer-Behavior/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shiburagi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-22T07:32:30.000Z","updated_at":"2025-01-11T12:01:17.000Z","dependencies_parsed_at":"2022-08-28T20:52:17.851Z","dependency_job_id":null,"html_url":"https://github.com/shiburagi/Drawer-Behavior","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiburagi%2FDrawer-Behavior","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiburagi%2FDrawer-Behavior/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiburagi%2FDrawer-Behavior/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shiburagi%2FDrawer-Behavior/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shiburagi","download_url":"https://codeload.github.com/shiburagi/Drawer-Behavior/tar.gz/refs/heads/v1.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586248,"owners_count":21128996,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-application","android-development","android-library","android-ui","card","drawer","drawer-android","drawer-layout","drawer-navigation","drawerlayout","drawernavigator","gradle","navigation-drawer","scale","slide","ui","ui-components"],"created_at":"2024-09-24T14:01:01.318Z","updated_at":"2025-04-12T14:56:42.981Z","avatar_url":"https://github.com/shiburagi.png","language":"Kotlin","funding_links":["https://ko-fi.com/A0A0FB3V'","https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=D9JKYQL8452AL"],"categories":[],"sub_categories":[],"readme":"# Drawer-Behavior\n[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Drawer--Behavior-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/6239)\n![fdsfd](https://github.com/shiburagi/Drawer-Behavior/workflows/CI/badge.svg)\n\nDrawer behavior is a library use **[Android DrawerLayout Support library](https://developer.android.com/training/implementing-navigation/nav-drawer)** as **Parent Class [Easy to migrate]**, that provide an **extra behavior on drawer**, such as, move view or scaling view's height while drawer on slide. \n\nIf current project use **Android DrawerLayout Support library** and kinda boring with the effect. Then, just **change the layout code** and **calling** necessary **method for animation/effect**.\n\n\n## New update\n * Change **Card barkground** color ([Jazcorra-Zero](https://github.com/jazcorra-zero))\n * **Support for get color from MaterialShapeDrawable** ([CamiloDelReal](https://github.com/CamiloDelReal))\n * Fix preview issue\n * **Migrate to AndroidX**\n * Transparent status bar for scale effect\n * Support RTL\n \n## Features\n * New drawer class with 3D effect\n * Card Effect \n * Zoom in \u0026 Zoom out effect\n * X-Translation effect\n \n![Alt Text](https://raw.githubusercontent.com/shiburagi/Drawer-Behavior/preview/gif/preview1.gif)\n\n**Android 9.0+ support**\n\n---\n\n### For **Flutter** : [Drawer-Behavior-Flutter](https://github.com/shiburagi/Drawer-Behavior-Flutter)\n\n---\n\n\u003ca href='https://ko-fi.com/A0A0FB3V' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi4.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=D9JKYQL8452AL)\n\n## Including In Your Project\n\nIf you are a Maven user you can easily include the library by specifying it as\na dependency:\n\n#### Maven\n#### Gradle\n\n```groovy\nmaven {\n    name = \"GitHubPackages\"\n    url = uri(\"https://maven.pkg.github.com/shiburagi/Drawer-Behavior\") // Github Package\n    credentials {\n\tusername = \"shiburagi\"\n\tpassword = \"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\"\n    }\n}\n``` \n```groovy\ndependencies {\n    implementation 'com.shiburagi.drawerbehavior:drawerbehavior:1.0.13'\n}\n```\n\n**or**,\nyou can include it by **download this project** and **import /drawerbehavior** as **module**.\n\n\n\n## How to use\n**Creating the layout**\n\n### Advance Drawer Layout\n---\n```xml\n\u003ccom.infideap.drawerbehavior.AdvanceDrawerLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/drawer_layout\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:fitsSystemWindows=\"true\"\n    android:background=\"@color/colorWhite\"\n    tools:openDrawer=\"start\"\u003e\n\n    \u003cinclude\n        layout=\"@layout/app_bar_default\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\" /\u003e\n\n    \u003candroid.support.design.widget.NavigationView\n        android:id=\"@+id/nav_view\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"match_parent\"\n        android:layout_gravity=\"start\"\n        android:fitsSystemWindows=\"true\"\n        android:background=\"@color/colorWhite\"\n        app:headerLayout=\"@layout/nav_header_main\"\n        app:menu=\"@menu/activity_main_drawer\" /\u003e\n\n    \u003candroid.support.design.widget.NavigationView\n        android:id=\"@+id/nav_view_notification\"\n        android:background=\"@color/colorPrimary\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"match_parent\"\n        android:layout_gravity=\"end\"\n        android:fitsSystemWindows=\"false\"\u003e\n        \u003cinclude layout=\"@layout/content_notification\"/\u003e\n    \u003c/android.support.design.widget.NavigationView\u003e\n\n\u003c/com.infideap.drawerbehavior.AdvanceDrawerLayout\u003e\n```\n\n**Initialize**\n```java\ndrawer = (AdvanceDrawerLayout) findViewById(R.id.drawer_layout);\n```\n\n**Use custom behavior**\n```java\ndrawer.useCustomBehavior(GravityCompat.START); //assign custom behavior for \"Left\" drawer\ndrawer.useCustomBehavior(GravityCompat.END); //assign custom behavior for \"Right\" drawer \n```\n---\n\n#### Card Effect\n\n![Alt Text](https://raw.githubusercontent.com/shiburagi/Drawer-Behavior/preview/gif/preview-card-1.gif)\n\n\n```java\ndrawer.setRadius(GravityCompat.START, 25);//set end container's corner radius (dimension)\n```\n\n---\n\n### Advance 3D Drawer Layout\n---\n![Alt Text](https://raw.githubusercontent.com/shiburagi/Drawer-Behavior/preview/gif/preview-3d-2.gif)\n\n```xml\n\u003ccom.infideap.drawerbehavior.Advance3DDrawerLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/drawer_layout\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:fitsSystemWindows=\"true\"\n    android:background=\"@color/colorPrimary\"\n    tools:openDrawer=\"start\"\u003e\n\n    \u003cinclude\n        layout=\"@layout/app_bar_default\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\" /\u003e\n\n    \u003candroid.support.design.widget.NavigationView\n        android:id=\"@+id/nav_view\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"match_parent\"\n        android:layout_gravity=\"start\"\n        android:fitsSystemWindows=\"true\"\n        android:theme=\"@style/ThemeOverlay.AppCompat.Dark\"\n        android:background=\"@color/colorPrimary\"\n        app:headerLayout=\"@layout/nav_header_main\"\n        app:menu=\"@menu/activity_main_drawer\" /\u003e\n\n    \u003candroid.support.design.widget.NavigationView\n        android:id=\"@+id/nav_view_notification\"\n        android:background=\"@color/colorPrimary\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"match_parent\"\n        android:layout_gravity=\"end\"\n        android:fitsSystemWindows=\"false\"\u003e\n        \u003cinclude layout=\"@layout/content_notification\"/\u003e\n    \u003c/android.support.design.widget.NavigationView\u003e\n\n\u003c/com.infideap.drawerbehavior.Advance3DDrawerLayout\u003e\n```\n\n**Initialize**\n```java\ndrawer = (Advance3DDrawerLayout) findViewById(R.id.drawer_layout);\n```\n\n**Use custom behavior**\n```java\ndrawer.setViewRotation(GravityCompat.START, 15); // set degree of Y-rotation ( value : 0 -\u003e 45)\n```\n---\n\n**Customize**\n```java\ndrawer.setViewScale(GravityCompat.START, 0.9f); //set height scale for main view (0f to 1f)\ndrawer.setViewElevation(GravityCompat.START, 20); //set main view elevation when drawer open (dimension)\ndrawer.setViewScrimColor(GravityCompat.START, Color.TRANSPARENT); //set drawer overlay coloe (color)\ndrawer.setDrawerElevation(GravityCompat.START, 20); //set drawer elevation (dimension)\ndrawer.setContrastThreshold(3); //set maximum of contrast ratio between white text and background color.\ndrawer.setRadius(GravityCompat.START, 25); //set end container's corner radius (dimension)\n```\n\n## Contact\nFor any enquiries, please send an email to tr32010@gmail.com. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiburagi%2Fdrawer-behavior","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshiburagi%2Fdrawer-behavior","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshiburagi%2Fdrawer-behavior/lists"}