An implementation of tap targets from the Material Design guidelines for feature discovery.

Overview

Video 1 Screenshot 1 Screenshot 2
TapTargetView

Maven Central Release

An implementation of tap targets from Google's Material Design guidelines on feature discovery.

Min SDK: 14

JavaDoc

Installation

TapTargetView is distributed using MavenCentral.

   repositories { 
        mavenCentral()
   }
   
   dependencies {
         implementation 'com.getkeepsafe.taptargetview:taptargetview:x.x.x'
   }

If you wish, you may also use TapTargetView with jitpack. For snapshots, please follow the instructions here.

Usage

Simple usage

TapTargetView.showFor(this,                 // `this` is an Activity
    TapTarget.forView(findViewById(R.id.target), "This is a target", "We have the best targets, believe me")
        // All options below are optional
        .outerCircleColor(R.color.red)      // Specify a color for the outer circle
	.outerCircleAlpha(0.96f)            // Specify the alpha amount for the outer circle
        .targetCircleColor(R.color.white)   // Specify a color for the target circle
        .titleTextSize(20)                  // Specify the size (in sp) of the title text
        .titleTextColor(R.color.white)      // Specify the color of the title text
        .descriptionTextSize(10)            // Specify the size (in sp) of the description text
        .descriptionTextColor(R.color.red)  // Specify the color of the description text
        .textColor(R.color.blue)            // Specify a color for both the title and description text
        .textTypeface(Typeface.SANS_SERIF)  // Specify a typeface for the text
        .dimColor(R.color.black)            // If set, will dim behind the view with 30% opacity of the given color
        .drawShadow(true)                   // Whether to draw a drop shadow or not
        .cancelable(false)                  // Whether tapping outside the outer circle dismisses the view
        .tintTarget(true)                   // Whether to tint the target view's color
        .transparentTarget(false)           // Specify whether the target is transparent (displays the content underneath)
        .icon(Drawable)                     // Specify a custom drawable to draw as the target
        .targetRadius(60),                  // Specify the target radius (in dp)
    new TapTargetView.Listener() {          // The listener can listen for regular clicks, long clicks or cancels
        @Override
        public void onTargetClick(TapTargetView view) {
            super.onTargetClick(view);      // This call is optional
            doSomething();
        }
    });

You may also choose to target your own custom Rect with TapTarget.forBounds(Rect, ...)

Additionally, each color can be specified via a @ColorRes or a @ColorInt. Functions that have the suffix Int take a @ColorInt.

Tip: When targeting a Toolbar item, be careful with Proguard and ensure you're keeping certain fields. See #180

Sequences

You can easily create a sequence of tap targets with TapTargetSequence:

new TapTargetSequence(this)
    .targets(
        TapTarget.forView(findViewById(R.id.never), "Gonna"),
        TapTarget.forView(findViewById(R.id.give), "You", "Up")
                .dimColor(android.R.color.never)
                .outerCircleColor(R.color.gonna)
                .targetCircleColor(R.color.let)
                .textColor(android.R.color.you),
        TapTarget.forBounds(rickTarget, "Down", ":^)")
                .cancelable(false)
                .icon(rick))
    .listener(new TapTargetSequence.Listener() {
        // This listener will tell us when interesting(tm) events happen in regards
        // to the sequence
        @Override
        public void onSequenceFinish() {
            // Yay
        }
        
        @Override
        public void onSequenceStep(TapTarget lastTarget, boolean targetClicked) {
            // Perform action for the current target
        }

        @Override
        public void onSequenceCanceled(TapTarget lastTarget) {
            // Boo
        }
    });

A sequence is started via a call to start() on the TapTargetSequence instance

For more examples of usage, please look at the included sample app.

Tutorials

Third Party Bindings

React Native

Thanks to @prscX, you may now use this library with React Native via the module here

NativeScript

Thanks to @hamdiwanis, you may now use this library with NativeScript via the plugin here

Xamarin

Thanks to @btripp, you may now use this library via a Xamarin Binding located here.

License

Copyright 2016 Keepsafe Software Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • "java.lang.IllegalArgumentException: Given null view to target" when calling TapTarget.forToolbarMenuItem

    • [ ] I have verified the issue exists on the latest version
    • [ ] I am able to reproduce it

    Version used: Latest: 1.9.1

    Stack trace: Fatal Exception: java.lang.IllegalArgumentException: Given null view to target at com.getkeepsafe.taptargetview.ViewTapTarget.(ViewTapTarget.java:31) at com.getkeepsafe.taptargetview.ToolbarTapTarget.(ToolbarTapTarget.java:36) at com.getkeepsafe.taptargetview.TapTarget.forToolbarMenuItem(TapTarget.java:151) at sk.henrichg.phoneprofilesplus.EditorProfilesActivity.showTargetHelps(EditorProfilesActivity.java:1956) at sk.henrichg.phoneprofilesplus.EditorProfilesActivity.access$500(EditorProfilesActivity.java:67) at sk.henrichg.phoneprofilesplus.EditorProfilesActivity$6.run(EditorProfilesActivity.java:513) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5103) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) at dalvik.system.NativeStart.main(NativeStart.java)

    Android version: Reported FC - API level <= 19

    My application uses android.support.v7.widget.Toolbar, support lib version: 25.3.1, toolbar is act as the ActionBar via setSupportActionBar().

    needs info 
    opened by henrichg 17
  • Fixed the messuring issue

    Fixed the messuring issue

    There was a problem with when the textLayouts were created. The way the library was working resulted in the getText() returning null most of the time and hence the math that deals with how big the views should be was getting corrupted.

    opened by georgi-nikolov 14
  • The TapTarget does not fit properly after rotation

    The TapTarget does not fit properly after rotation

    The TapTarget does not fit properly after rotation, In landscape mode the taptarget should be in the settings icon

    screenshot_2016-10-08-23-56-27 screenshot_2016-10-08-23-56-40

    screenshot_2016-10-09-00-03-08 screenshot_2016-10-09-00-03-18

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used:

    Stack trace:

    Android version:

    question 
    opened by ZetDeveloper 14
  • UnsupportedOperationException on API 15

    UnsupportedOperationException on API 15

    • [X] I have verified the issue exists on the latest version
    • [X] I am able to reproduce it

    There is an issue with clipPath on API 15 because it is not supported with hardware acceleration enabled.

    Version used: 1.9.1

    Stack trace: Exception java.lang.UnsupportedOperationException: android.view.GLES20Canvas.clipPath (GLES20Canvas.java:412) com.getkeepsafe.taptargetview.TapTargetView.onDraw () android.view.View.draw (View.java:11015) android.view.View.getHardwareLayer (View.java:10253) android.view.ViewGroup.drawChild (ViewGroup.java:2947) android.view.ViewGroup.dispatchDraw (ViewGroup.java:2573) android.view.View.draw (View.java:11018) android.widget.FrameLayout.draw (FrameLayout.java:450) com.android.internal.policy.impl.PhoneWindow$DecorView.draw (PhoneWindow.java:2137) android.view.View.getDisplayList (View.java:10454) android.view.HardwareRenderer$GlRenderer.draw (HardwareRenderer.java:851) android.view.ViewRootImpl.draw (ViewRootImpl.java:2034) android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1748) android.view.ViewRootImpl.handleMessage (ViewRootImpl.java:2583) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:137) android.app.ActivityThread.main (ActivityThread.java:4506) java.lang.reflect.Method.invokeNative (Method.java) java.lang.reflect.Method.invoke (Method.java:511) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:809) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:576) dalvik.system.NativeStart.main (NativeStart.java)

    Android version: 4.0.3

    bug 
    opened by marbat87 12
  • TapTargets for views near the top of the screen show title in status bar

    TapTargets for views near the top of the screen show title in status bar

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used: 1.4.1

    Stack trace: N/A

    Android version: 7.0

    See screenshot. Would it be possible in this case to move the title below the target? I tried setting the bounds manually to a smaller square at the left/right sides of the view but the same thing happened.

    screenshot_20161019-164849

    bug 
    opened by drampelt 12
  • Sequence Problem...

    Sequence Problem...

    Version used: 1.9.1

    hi is Tap Target Sequence for Toolbar Menu Items have limit ? after import your code and add more target Sequence for menu items toolbar ... new menu items not working...

    my code :


    //toolbar ... attach menu toolbar.inflateMenu(R.menu.menu_basket);


    //actionbar... attach boomMenu with custom layout rightBmb = (BoomMenuButton) actionBar.findViewById(R.id.action_bar_right_bmb);


    public boolean onCreateOptionsMenu (Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_basket, menu);

    }


                           // work
                        TapTarget.forToolbarNavigationIcon(toolbar, "This is the back button", sassyDesc).id(1),
                     // work
                        TapTarget.forToolbarMenuItem(toolbar, R.id.action_bar_right_bmb, "This is a search 
                                 icon","As...")
                                .dimColor(android.R.color.black)
                                .outerCircleColor(R.color.colorAccent)
                                .targetCircleColor(android.R.color.black)
                                .transparentTarget(true)
                                .textColor(android.R.color.black)
                                .id(2),
    
                     //not working...
                        TapTarget.forToolbarMenuItem(toolbar, R.id.item_badge, "This is a search 
                               icon","As..")
                                .dimColor(android.R.color.black)
                                .outerCircleColor(R.color.colorAccent)
                                .targetCircleColor(android.R.color.black)
                                .transparentTarget(true)
                                .textColor(android.R.color.black)
                                .id(4),
    
                     //not working...
                        TapTarget.forToolbarMenuItem(toolbar, R.id.item_search, "This is a search 
                               icon","As..")
                                .dimColor(android.R.color.black)
                                .outerCircleColor(R.color.colorAccent)
                                .targetCircleColor(android.R.color.black)
                                .transparentTarget(true)
                                .textColor(android.R.color.black)
                                .id(5),
    

    and other codes just same as your codes...

    am i missing sth !?

    sad

        English is not my mother tongue; please excuse any errors on my part
    
    needs info 
    opened by emadph 11
  • On cancelling targetview, background screen is getting blocked.

    On cancelling targetview, background screen is getting blocked.

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used: 1.11.0

    Stack trace: On cancelling targetview, Background view is blocked unable to do any other action on that.

    Android version: 6.0.1

    needs info 
    opened by NeerajaReddyKomma 10
  • Feature Request:- Expose method which takes menuitem as target

    Feature Request:- Expose method which takes menuitem as target

    I have a situation where I change the visibility of a menuitem in onPrepareOptionsMenu within a fragment. I want to show a TapTargetView when the item becomes visible.

    I have a reference to the menuitem and would like to create the TapTargetView with the menuitem as the target, possibly in onPrepareOptionsMenu.

    I have tried getting a reference to the toolbar and finding the item in onPrepareOptionsMenu using the id but it always resolves as null in this method.

    Could you assist or possibly add the ability to pass a menuitem?

    Thanks Jason

    question needs info 
    opened by squarenotch 10
  • BottomNavigationView item overrides the tooltip

    BottomNavigationView item overrides the tooltip

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    When I setting tooltip for BottomNavigationView item its overrides the tooltip.

    TapTargetView.showFor(this,
                    TapTarget.forView(bottomNavigationView.findViewById(R.id.action_menu), "This is a target", "We have the best targets, believe me"),   
                    new TapTargetView.Listener() {
                        @Override
                        public void onTargetClick(TapTargetView view) {
                            super.onTargetClick(view);
                            Toast.makeText(ExampleActivity.this, "Test", Toast.LENGTH_SHORT).show();
                        }
                    });
    
    opened by khailenkomaksym 9
  • Toolbar icons disappear

    Toolbar icons disappear

    • [x] I have verified the issue exists on the latest version
    • [x] I am able to reproduce it

    Version used: 1.8.0 Android version: 6.0.1

    I use "TapTargetSequence" with 2 "TapTarget.forBounds", in this 2 i have the same icon of my toolbar. When the TapTarget finish or is canceled my toolbar icons disappear

    Code: ` private void firstTime() {

        Display display = getActivity().getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        Rect rectInfo = new Rect((size.x - 100), 0, (size.x - 50), (size.y / 6));
        Rect rectUpdate = new Rect((size.x - 200), 0, (size.x - 150), (size.y / 6));
    
        new TapTargetSequence(getActivity())
                .targets(
                        TapTarget.forBounds(
                                rectInfo, "Legenda", "Identifica as cores dos materiais")
                                .outerCircleColor(R.color.azul)
                                .targetCircleColor(R.color.branco)
                                .titleTextSize(30)
                                .descriptionTextSize(15)
                                .textColor(R.color.preto)
                                .textTypeface(Typeface.SANS_SERIF)
                                .drawShadow(true)
                                .cancelable(false)
                                .tintTarget(false)
                                .transparentTarget(false)
                                .icon(getResources().getDrawable(R.drawable.ic_help_outline_black_24dp))
                                .targetRadius(60).id(1),
    
                        TapTarget.forBounds(
                                rectUpdate, "Recarregar", "Refazer Validação de Materiais")
                                .outerCircleColor(R.color.azul)
                                .targetCircleColor(R.color.branco)
                                .titleTextSize(30)
                                .descriptionTextSize(15)
                                .textColor(R.color.preto)
                                .textTypeface(Typeface.SANS_SERIF)
                                .drawShadow(true)
                                .cancelable(false)
                                .tintTarget(false)
                                .transparentTarget(false)
                                .icon(getResources().getDrawable(R.drawable.reload))
                                .targetRadius(60).id(2)
                ).start();
    }`
    

    Screen after "TapTargetSequence" appear: image

    Screen without "TapTargetSequence" appear: image

    What wrong did i do?

    needs info 
    opened by EuMenezes 9
  • TapTargetView cut off on devices with cutout/notch

    TapTargetView cut off on devices with cutout/notch

    • [✓] I have verified the issue exists on the latest version
    • [✓] I am able to reproduce it

    Version used: 1.12.0

    Stack trace: not available

    Android version: Google Pixel 3 XL, 9.0 One Plus 6, OxygenOS 9.0.3

    It seems that TapTargetView has an issue with devices with a cutout/notch. The view is cut off at the bottom with a height that seems to be the height of the cutout. Here are screenshots from a Google Pixel 3 XL and a One Plus 6. The cutout of the One Plus 6 is smaller and so is the area that is cut off from the view. The view works fine on devices without a cutout like the Pixel (1) and Pixel 3.

    screenshot_20190204-095339

    screenshot_20190204-095335

    opened by svenjacobs 8
  • TapTarget view showing only on ist recycler view item

    TapTarget view showing only on ist recycler view item

    I have applied TapTarget view on recycler view , But each-time when i give the different index of recycler view to show target view, it is always showing on the 0th index /ist item of recycler view.

    Tap target view is not moving to other indexes.

    If someone could help me , Please assist.

    Thanks in Advance.

    opened by rkapila50 0
  • Is there any way to show the TapTargetView multiple times without sequence?

    Is there any way to show the TapTargetView multiple times without sequence?

    Hi,

    I was wondering if there is anything can be done to show TapTargetView multiple times in same activity but without sequence.

    For example, if user doesn't perform first action for 10 seconds show the first TapTargetView. Then if user don't perform second action for another 10 seconds then show another TapTargetView.

    Is this possible?

    opened by xsheru 0
  • No Means of Adding a Next Button on the sequence

    No Means of Adding a Next Button on the sequence

    • [X] I have verified the issue exists on the latest version
    • [X] I am able to reproduce it

    com.getkeepsafe.taptargetview:taptargetview:1.13.0

    Android version: 9

    opened by Samuelungbede1 0
  • How to set custom font to titleText

    How to set custom font to titleText

    Version used: 1.13.3 Android version: Android - 9

    How to set custom font to titleText ? I want to apply these style to the title text, How. can i do it ?

      <item name="android:fontFamily">@font/hk_grotesk</item>
            <item name="android:textStyle">normal</item>
            <item name="android:textSize">13sp</item>
            <item name="android:lineSpacingExtra">5dp</item>
    
    opened by kpradeepkumarreddy 0
Releases(1.13.3)
  • 1.13.3(Jul 9, 2021)

  • 1.13.2(Mar 10, 2021)

  • 1.13.1(Mar 10, 2021)

  • 1.13.0(Sep 5, 2019)

    889c7c8 Fixed unresolved dependency by JCenter 84afbb8 Update README.md (#349) 80610b6 Add NativeScript support link (#332) 8887555 Fix #304: view being cut by "non-present" navigation bar (#311) a5f4288 Improve Gradle files (#317) 4af5fe1 Remove execution permission (+x) from files (#318) e01b5e5 Don't tint transparent targets (#315) 299ee87 Migrate to AndroidX (#312) 3351ec1 Updated readme to reflect latest version

    Source code(tar.gz)
    Source code(zip)
  • 1.12.0(Jul 25, 2018)

    f9233de Fix decor related issues (#300) 8036db5 Fix not being able to cancel on last target (#299) be6d3ac Fix NPE from dismissal before determining center (#298) edb505e Replacement of "compile" with "implementation" (#291) cf27a77 Handle dismiss before show 75bb6e5 Use central build variables (#264) 4f0aee1 Update build tools to most recent ones (#261) 2e18dda Use api configuration for public dependencies. (#258) 7f60a0d Update to latest support library + SDK version (#257) e24cab4 Fix build (#256) 0c7cb95 Disable interaction during expand animation (#248) ea599d8 Update Gradle version (#253) 9dd9d47 Fix "sometimes" typo (#246)

    Source code(tar.gz)
    Source code(zip)
  • 1.11.0(Jan 7, 2018)

    a3a9c41 Fix NPE when dismiss is called immediately (#244) 30f59dc Add notion of isDismissing and gate onReady() callbacks on it (#243) 6898f18 Add startWith and startAt to TapTargetSequence (#228)

    Source code(tar.gz)
    Source code(zip)
  • 1.10.0(Oct 19, 2017)

    d2d4ae9 Catch all exceptions when removing view (#218) b812385 Add possibility to configure alpha of description text. (#213) 42284f9 Add support for TapTargetSequences to act on Dialogs (#198) 960e433 Allow sequences to be canceled (#186) f74226d Don't return an empty/gone Toolbar navigation view 40de141 Change order of removeView and onDismiss call (#177) 729cd17 Separate title and description typeface (#167) 4d36558 Remove unnecessary clip patch operation (#166)

    Source code(tar.gz)
    Source code(zip)
  • 1.9.1(Apr 1, 2017)

  • 1.9.0(Mar 27, 2017)

    88bfe0d Add outer circle alpha target option (#154) 1bdfa87 Add jittered shadow fallback for transparent targets (#151) befa6aa Dont attempt to create layouts with negative width (#147) ba0c355 Signal when last target was not clicked if continueOnCancel is true (#142) 5576f82 Return TapTargets in all factory methods (#135) c10d2f2 Extend AnimatorListenerAdapter (#131) 17e1f05 Reduce some visibility to package protected (#132) 53f66c8 Use ContextCompat.getColor() (#130)

    Source code(tar.gz)
    Source code(zip)
  • 1.8.0(Feb 9, 2017)

    cb5231f Add initial support for tablets (#127) 5a28b2a Dont use white as the 'unset' color (#125) e11a5ff Ignore NPE from modified versions of Android (#122) 7a34259 Add ability to treat tapping the outer circle as a cancel (#118) a5bd180 Allow custom icons to be set on a view tap target (#117)

    Source code(tar.gz)
    Source code(zip)
  • 1.7.0(Jan 16, 2017)

    8562acf Add debug text for interesting elements (#109) 542bf46 Calculate outer circle radius better (#107) c828694 Don't redraw tinted target if already drawn (#105) 3c5b8f3 Added onSequenceStep() (#103) efe5523 Add step listener to sequence listener (#102) 459a3af Fix #98 typo in textTypeface function usage

    Source code(tar.gz)
    Source code(zip)
  • 1.6.1(Dec 23, 2016)

    8c824c6 Determine target click via radius, not bounding box (#96) 061c9af React to window size changes (#95) f7b8085 Updating dependency versions 04e0302 Check width and height for every OS version (#90)

    Source code(tar.gz)
    Source code(zip)
  • 1.6.0(Dec 5, 2016)

    ff779ec Add support for FLAG_LAYOUT_NO_LIMITS (#85) 4c50713 Prevent negative layout widths due to insufficient space (#83) 4002d29 Target size customization (#82) 836c4ed Add listener to call to outer circle click (#77)

    Source code(tar.gz)
    Source code(zip)
  • 1.5.3(Nov 20, 2016)

  • 1.5.2(Nov 19, 2016)

    b3d295c Add support for dimen resources for text sizes (#69) ad52453 Dont allow more than one confirmed interaction (#68) d737ed5 Fail fast when given null view (#64) 3a59715 Don't repeat collapsing animation on multiple back button presses (#60)

    Source code(tar.gz)
    Source code(zip)
  • 1.5.1(Nov 1, 2016)

  • 1.5.0(Oct 24, 2016)

    d545673 Use proper method of determining bounding parent boundaries (#53) f445b5f Add ids to tap targets, pass last tap target when sequence is cancelled (#51)

    Source code(tar.gz)
    Source code(zip)
  • 1.4.1(Oct 14, 2016)

    This is a bugfix release, no new features have been added.

    204dff6 Fix listener variable shadowing and click handling (#48) 59c29f4 Clip to bounding parent if present 1a4b53c Use correct invalidation bounds and improve animations (#46)

    Source code(tar.gz)
    Source code(zip)
  • 1.4.0(Oct 13, 2016)

    432485b Add support for transparent targets 460bd4b Add text color options. Fixes #27 3a0496c Add text size options. Fixes #40 e3af3b0 Add back button handling. Supersedes #32 4f7d615 Ensure center is defined before drawing. Fixes #37

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Oct 1, 2016)

    3c5be37 Initial support for Toolbar related views (#34) aa5201e Use view outlines for shadows on Lollipop and above cac04b9 Don't draw a circle via a path 13a8cbe Don't use view cache to draw the view 0a0d2a2 Add support for dialogs, custom parents (#31) 0f40189 Min SDK 14, fixes #29 fe748f2 Add dismiss listener, fixes #26

    Source code(tar.gz)
    Source code(zip)
  • 1.2.0(Sep 22, 2016)

    NOTE: This is an API breaking release.

    d0db08e Fix for #25 38af02a Fix issue with clipping and older APIs c33a724 Only invalidate the drawing bounds f93b0cc Add support for Spannable strings (#20) 11e70a0 Make descriptions optional (#17) 3c520f3 Remove synthetic accessors 80964cd Implement sequences and custom tap targets (#14) c9c27e7 Add onTargetCancel callback (#3)

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Sep 13, 2016)

Owner
Keepsafe
Empowering the average person’s digital privacy we’re innovating on existing privacy, crypto and security technology. Over 50 million users.
Keepsafe
:octocat: 📃 FoldingCell is a material design expanding content cell inspired by folding paper material made by @Ramotion

FOLDING CELL [JAVA] Expanding content cell with animation inspired by folding paper card material design. We specialize in the designing and coding of

Ramotion 4.9k Dec 7, 2022
A layout to transition between two views using a Floating Action Button as shown in many Material Design concepts

⚠ This library is no longer maintained ⚠️ FABRevealLayout A layout to transition between two views using a Floating Action Button as shown in many Mat

Tomás Ruiz-López 901 Dec 9, 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
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 Dec 30, 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
Material Design Search View Layout, now implemented in Google Maps, Dialer, etc

THIS PROJECT IS DEPRECATED Component is not maintained anymore. Implementation of Lollipop+ Dialer and Google Maps. DEMO Add in View Add to your layou

Sahil Dave 1.1k Dec 22, 2022
Implementation of ExpandableListview with custom header and custom content.

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

Robin Chutaux 1.6k Dec 12, 2022
An Android demo of a foldable layout implementation. Engineered by Vincent Brison.

Foldable Layout This code is a showcase of a foldable animation I created for Worldline. The code is fully written with java APIs from the Android SDK

Worldline 599 Dec 23, 2022
Android implementation of FlowLayout. Layout arranges its children in multiple rows depending on their width.

FlowLayout FlowLayout is an opensource Android library that alows developers to easily integrate flow layout into their app. FlowLayout is an layout t

Blaž Šolar 754 Dec 15, 2022
A backwards compatible implementation of GridLayout for Android

GridLayout Library This library provides a version of GridLayout that works across all versions of Android 1.5+. As a side effect, this library also i

Daniel Lew 186 Nov 25, 2022
Maetrial Design Delete Concept Implement

MaterialDeleteLayout 说明 早上逛github的时候,发现ParticleLayout这个开源项目,觉得这个创意还可以... 从说明中又点进去看IOS的效果,也从那里看到了原设计图... 原设计图是这样子的: IOS的效果是这样的: 那一刻感觉android的效果lower了好多

CJJ 355 Nov 19, 2022
Smooth version of Google Support Design AppBarLayout

smooth-app-bar-layout [Deprecated] ================ [DEPRECATED] The issue that is addressed in this library is fixed from support design 26.0.0 or ab

Henry Tao 1.8k Dec 13, 2022
A simple customised version of the TextInputLayout from the Android Design Support Library ⌨️

Buffer Text Input Layout (Coming to maven central soon!) This is a simple customisation of the TextInputLayout found in the Design Support Library. Wh

Buffer 988 Nov 24, 2022
Pixel perfect for design layout android

Pixelperfect Pixel perfect helps you design layouts according to the resolution of your users' device Follow the steps below to implement : dependen

null 10 Oct 23, 2022
An implementation of tap targets from the Material Design guidelines for feature discovery.

TapTargetView An implementation of tap targets from Google's Material Design guidelines on feature discovery. Min SDK: 14 JavaDoc Installation TapTar

Keepsafe 5.2k Dec 30, 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
A Gradle plugin for Kotlin Multiplatform projects that generate a XCFramework for Apple targets or a FatFramework for iOS targets, and manages the publishing process in a CocoaPod Repository.

KMP Framework Bundler KMP Framework Bundler is a Gradle plugin for Kotlin Multiplatform projects that generate a XCFramework for Apple targets or a Fa

Marco Gomiero 17 Oct 29, 2022
Material Design text field that comes in a box, based on (OLD) Google Material Design guidelines.

TextFieldBoxes A new Material Design text field that comes in a box, based on Google Material Design guidelines. ???? 中文看这里 UPDATE NOTICE 1.4.5 Releas

Mark Wang 769 Jan 7, 2023
Google one tap sign in - Flutter Google One Tap Sign In (Android)

Google One Tap Sign In Google One Tap Sign In (Android) A Flutter Plugin for Google One Tap Sign In Getting Started To access Google Sign-In, you'll n

null 6 Nov 23, 2022
Bottom Navigation widget component inspired by the Google Material Design Guidelines at https://www.google.com/design/spec/components/bottom-navigation.html

Material Bottom Navigation Library Lightweight Bottom Navigation library component inspired by the Google Material Design Guidelines at https://www.go

Alessandro Crugnola 1.4k Dec 18, 2022