Backport of Material dialogs with easy-to-use API based on DialogFragment

Overview

StyledDialogs for Android

Build Status License Android Arsenal

Screenshot of the dialogs

Demo app:

Get it on Google Play

Features:

  • Compatible with Material Design Guidelines
  • Same look for Android 2.2+
  • Built on top of standard DialogFragment
  • Supports stacked buttons, neutral button, callbacks even after rotation
  • Light and dark theme
  • Contains even more specialized dialogs: List, Progress, Time&Date Picker, Custom, ...

How to include it in your project:

dependencies {
	compile 'com.avast:android-styled-dialogs:2.3.3'
}

Hosted in jcenter: Download

Looking for Holo dialogs?

How to style all dialogs:

It uses standard Material colors, for example like this:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/indigo</item>
        <item name="colorPrimaryDark">@color/indigo_dark</item>
        <item name="colorAccent">@color/pink</item>
</style>

For dark theme, inherit from Theme.AppCompat. Or you can force dark theme per individual dialog using useDarkTheme() builder method. You can also force light theme per individual dialog using useLightTheme() builder method.

How to create simple dialogs:

Easy:

Dialog with a simple message only:

SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setMessage(R.string.message).show();

Dialog with a title, message and two buttons:

SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setTitle(R.string.title).setMessage(R.string.message).setPositiveButtonText(R.string.positive_button).setNegativeButtonText(R.string.negative_button).show();

How to react on button press in your Activity/Fragment:

Simply implement interface ISimpleDialogListener in your Activity/Fragment. Listener's callbacks have requestCode parameter - you can use it if you have more dialogs in one Activity/Fragment.

For Fragments use setTargetFragment() method in the builder.

It's not possible to use normal Java callbacks, because they are lost after device rotation.

How to react on cancelling the dialog:

Implement interface ISimpleDialogCancelListener in your Activity/Fragment.

How to create custom DialogFragments:

Extend BaseDialogFragment.

Have a look at JayneHatDialogFragment for a practical example.

Contributing

Pull requests are welcomed!

Please set your Android Studio formatting to our code style.

Why 'Dialogs'?

Theodor Dialogs was a famous Czech painter, uncle of Jára Cimrman. Jára Cimrman was a playwright, philosopher, inventor, teacher, poet, mathematician and more but he lacked painting skills. That's why Theodor was helping him with many projects. Just like Android and this library do.

See our other Czech personalities who help with #AndroidDev.

Comments
  • Regarding usage with API 14+ and FragmentManager

    Regarding usage with API 14+ and FragmentManager

    I want to use this library with my application targeting API 14+. Hence I am only extending Activity in my activities, which gives access to only getFragmentManager()(not the support version) but the constructor requires the supportFragmentManager. How do i resolve this? I would like to avoid extending FragmentActivity if possible. Sorry If i missed something obvious here.

    Excellent work on the library!!

    opened by tmsbn 12
  • Cannot build with gradle build system

    Cannot build with gradle build system

    Hello,

    i'm trying to use your library within my project using gradle + your maven group+artifactid.

    The first problem I came across is that you're referencing a support library that is different from the "official" one in google repos. This prompts an error

    UNEXPECTED TOP-LEVEL EXCEPTION:
    java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
    

    after fixing that by writing the following in my gradle.build:

    dependencies {
    
        compile ('eu.inmite.android.lib:android-styled-dialogs:0.5.7') {
            exclude group: 'com.google.android'
        }
    

    I experienced this other problem below:

    Error: duplicate files during packaging of APK /home/abaccega/gitStuff/AppsBuilderProject/AppsBuilder/build/apk/AppsBuilder-ALHHotels-debug-unaligned.apk
        Path in archive: AndroidManifest.xml
    
    opened by vekexasia 10
  • Crash when integrating in Android Studio project

    Crash when integrating in Android Studio project

    I am using Android Studio with compile SDK version API 21 Android 5.0. Build Tool Version is 21.1.2.

        SimpleDialogFragment.createBuilder(this, getSupportFragmentManager())
                .setTitle("test")
                .setMessage("test")
                .setPositiveButtonText("test")
                .setNegativeButtonText("test")
                .setNeutralButtonText("test")
                .show();
    

    02-02 20:45:19.255 15585-15585/? E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mumubj.momoda/com.mumubj.momoda.activity.MainActivity}: android.view.InflateException: Binary XML file line #39: Error inflating class at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2342) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417) at android.app.ActivityThread.access$600(ActivityThread.java:148) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5390) at java.lang.reflect.Method.invokeNative(Native Method) 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 dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #39: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:620) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.avast.android.dialogs.core.BaseDialogFragment$Builder.create(BaseDialogFragment.java:245) at com.avast.android.dialogs.core.BaseDialogFragment.onCreateView(BaseDialogFragment.java:61) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548) at com.mumubj.momoda.activity.BaseActivity.onStart(BaseActivity.java:56) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171) at android.app.Activity.performStart(Activity.java:5313) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)             at android.app.ActivityThread.access$600(ActivityThread.java:148)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)             at android.os.Handler.dispatchMessage(Handler.java:99)             at android.os.Looper.loop(Looper.java:150)             at android.app.ActivityThread.main(ActivityThread.java:5390)             at java.lang.reflect.Method.invokeNative(Native Method)             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 dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:594)             at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)             at android.view.LayoutInflater.inflate(LayoutInflater.java:492)             at android.view.LayoutInflater.inflate(LayoutInflater.java:397)             at com.avast.android.dialogs.core.BaseDialogFragment$Builder.create(BaseDialogFragment.java:245)             at com.avast.android.dialogs.core.BaseDialogFragment.onCreateView(BaseDialogFragment.java:61)             at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)             at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)             at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)             at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)             at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)             at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)             at com.mumubj.momoda.activity.BaseActivity.onStart(BaseActivity.java:56)             at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)             at android.app.Activity.performStart(Activity.java:5313)             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)             at android.app.ActivityThread.access$600(ActivityThread.java:148)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)             at android.os.Handler.dispatchMessage(Handler.java:99)             at android.os.Looper.loop(Looper.java:150)             at android.app.ActivityThread.main(ActivityThread.java:5390)             at java.lang.reflect.Method.invokeNative(Native Method)             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 dalvik.system.NativeStart.main(Native Method) Caused by: android.content.res.Resources$NotFoundException: Resource is not a ColorStateList (color or path): TypedValue{t=0x2/d=0x7f0100c2 a=2} at android.content.res.Resources.loadColorStateList(Resources.java:2310) at android.content.res.TypedArray.getColorStateList(TypedArray.java:342) at android.widget.TextView.(TextView.java:1028) at android.widget.Button.(Button.java:107) at android.widget.Button.(Button.java:103)             at java.lang.reflect.Constructor.constructNative(Native Method)             at java.lang.reflect.Constructor.newInstance(Constructor.java:417)             at android.view.LayoutInflater.createView(LayoutInflater.java:594)             at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669)             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)             at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)             at android.view.LayoutInflater.inflate(LayoutInflater.java:492)             at android.view.LayoutInflater.inflate(LayoutInflater.java:397)             at com.avast.android.dialogs.core.BaseDialogFragment$Builder.create(BaseDialogFragment.java:245)             at com.avast.android.dialogs.core.BaseDialogFragment.onCreateView(BaseDialogFragment.java:61)             at android.support.v4.app.Fragment.performCreateView(Fragment.java:1786)             at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:947)             at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)             at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)             at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)             at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)             at com.mumubj.momoda.activity.BaseActivity.onStart(BaseActivity.java:56)             at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)             at android.app.Activity.performStart(Activity.java:5313)             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)             at android.app.ActivityThread.access$600(ActivityThread.java:148)             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)             at android.os.Handler.dispatchMessage(Handler.java:99)             at android.os.Looper.loop(Looper.java:150)             at android.app.ActivityThread.main(ActivityThread.java:5390)             at java.lang.reflect.Method.invokeNative(Native Method)             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 dalvik.system.NativeStart.main(Native Method)

    opened by freefocus 8
  • Need get aar library instead jar while connecting via gradle

    Need get aar library instead jar while connecting via gradle

    Hi, when i connect this library to my project, i can't get set of library resources (styles, colors), because i get simple jar with my gradle. I have this string in build.gradle: compile 'eu.inmite.android.lib:android-styled-dialogs:1.2.0' Need implement aar library with connection string "compile 'eu.inmite.android.lib:android-styled-dialogs:1.2.0@aar'". Thanks.

    opened by ultraon 8
  • Dialogs width on Tablets

    Dialogs width on Tablets

    Using this library when I show a dialog on tablet its width always matches parent, but I don't want it always. When using simple dialogs I just want a small dialog.

    opened by martarodriguezm 7
  • Problem with gradle and resources

    Problem with gradle and resources

    I've added this library to my project with gradle (compile 'eu.inmite.android.lib:android-styled-dialogs:1.1.2@aar') and my project won't compile if I want to style dialogs in styles.xml because it can't find custom attributes from this library. I have other libraries that use custom attributes (like ActionBarCompat or SmoothProgressBar) and in my project structure I can see build/exploded-aar folder where I can find all libs that are distributed with resources included but there is no android-styled-dialogs there.

    opened by kamilzych 7
  • setCancelableOnTouchOutside

    setCancelableOnTouchOutside

    I've added possibility to set value of fragment.getDialog().setCanceledOnTouchOutside to value other than fragment.setCanceled set. I needed a modal dialog still cancelable by the back button but not cancelable by random touch out of the area of dialog.

    opened by petrsimek 7
  • Problem when using latest support library with aar.

    Problem when using latest support library with aar.

    I am using the 1.1.1 aar with Gradle.

    I think because this library references the "r7" version of the support library that is in Maven Central, but I'm using the latest version of the support library provided by the local repository provided by the Android SDK, I'm getting the following error:

     Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice
    

    Can the library be changed to use the (latest) version of the support library that is provided by the Android SDK? I know that works with Gradle but not sure about Maven.

    opened by intrications 6
  • Extracted styles for title and message into theme declaration

    Extracted styles for title and message into theme declaration

    This PR allows simpler way to customize title and message text by overriding theme properties. It also gives simple way to add title and message icon by using drawable[Left|Right...]

    example:

    <style name="SDL.TextView.Title.Alert">
        <item name="android:drawableLeft">@drawable/ic_alert</item>
        <item name="android:textSize">16sp</item>
    </style>
    
    opened by mr-const 6
  • Errors in sdl_theme.xml

    Errors in sdl_theme.xml

    When I import the library in Eclipse, I got many errors in the sdl_theme.xml file like this: "No resource found that matches the given name: attr 'android:spinnersShown'"

    opened by ismaeltoe 5
  • ProgressDialogFragment cannot set the theme

    ProgressDialogFragment cannot set the theme

    Hello.

    I dont know if really is a issue, but im using your library and i have the theme declared, is working fine for a custom dialog.

    In my theme active:

    <item name="sdlDialogStyle">@style/Ruby.Dialog</item>
    

    and in styles XML

    <style name="Ruby.Dialog" parent="DialogStyleLight">
        <item name="titleTextColor">@color/background_ruby</item>
        <item name="titleSeparatorColor">@color/background_ruby</item>
        <item name="messageTextColor">@color/foreground_ruby_inverse</item>
        <item name="buttonTextColor">@color/foreground_ruby_inverse</item>
        <item name="buttonSeparatorColor">@color/divider_ruby</item>
        <item name="buttonBackgroundColorPressed">@color/background_ruby</item>
        <item name="buttonBackgroundColorFocused">@color/background_ruby</item>
    </style>
    

    Now i setup a simple Progress BUT the text dont take the style from styles.

            ProgressDialogFragment.createBuilder(this, getSupportFragmentManager())
                    .setMessage(R.string.loading)
                    .show();
    

    The text color (String loading) is WHITE and must be foreground_ruby_inverse (BLACK) like my first dialog.

    Thanks!

    opened by jjalonso 5
  • Caused by android.os.BadParcelableException Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.tw.coffinfakecall.dialogs.util.SparseBooleanArrayParcelable com.tw.coffinfakecall.dialogs.core.BaseDialogFragment.resolveTheme

    Caused by android.os.BadParcelableException Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.tw.coffinfakecall.dialogs.util.SparseBooleanArrayParcelable com.tw.coffinfakecall.dialogs.core.BaseDialogFragment.resolveTheme

    Caused by android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.**.dialogs.util.SparseBooleanArrayParcelable at android.os.Parcel.readParcelableCreator(Parcel.java:2549) at android.os.Parcel.readParcelable(Parcel.java:2471) at android.os.Parcel.readValue(Parcel.java:2374) at android.os.Parcel.readArrayMapInternal(Parcel.java:2727) at android.os.BaseBundle.unparcel(BaseBundle.java:269) at android.os.BaseBundle.getBoolean(BaseBundle.java:694) at com.tw.coffinfakecall.dialogs.core.BaseDialogFragment.resolveTheme(BaseDialogFragment.java:239) at com.tw.coffinfakecall.dialogs.core.BaseDialogFragment.onCreateDialog(BaseDialogFragment.java:72) at androidx.fragment.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:380) at androidx.fragment.app.Fragment.performGetLayoutInflater(Fragment.java:1412)

    opened by Timan86 1
  • Caused by android.view.InflateException: Binary XML file line #8: Error inflating class RadioButton

    Caused by android.view.InflateException: Binary XML file line #8: Error inflating class RadioButton

    Caused by android.content.res.Resources$NotFoundException: File res/drawable/abc_btn_radio_material.xml from drawable resource ID #0x7f08000f at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:820) at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:630) at android.content.res.Resources.loadDrawable(Resources.java:886) at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:953) at android.content.res.TypedArray.getDrawable(TypedArray.java:928) at android.widget.CompoundButton.(CompoundButton.java:99) at android.widget.RadioButton.(RadioButton.java:63) at android.widget.RadioButton.(RadioButton.java:59) at androidx.appcompat.widget.AppCompatRadioButton.(AppCompatRadioButton.java:69) at androidx.appcompat.widget.AppCompatRadioButton.(AppCompatRadioButton.java:65) at androidx.appcompat.app.AppCompatViewInflater.createRadioButton(AppCompatViewInflater.java:217) at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:131) at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1407) at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1457) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate(LayoutInflater.java:863) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at com.tw.fakeiphonecall.dialogs.fragment.ListDialogFragment$1.getView(ListDialogFragment.java:95) at android.widget.AbsListView.obtainView(AbsListView.java:2365) at android.widget.ListView.measureHeightOfChildren(ListView.java:1408) at android.widget.ListView.onMeasure(ListView.java:1315) at android.view.View.measure(View.java:22071) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514) at android.widget.LinearLayout.measureVertical(LinearLayout.java:806) at android.widget.LinearLayout.onMeasure(LinearLayout.java:685) at android.view.View.measure(View.java:22071) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514) at android.widget.LinearLayout.measureVertical(LinearLayout.java:806) at android.widget.LinearLayout.onMeasure(LinearLayout.java:685) at android.view.View.measure(View.java:22071) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:22071) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at android.view.View.measure(View.java:22071) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602) at android.widget.FrameLayout.onMeasure(FrameLayout.java:185) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:724) at android.view.View.measure(View.java:22071) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2422) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1477) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1761) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) at android.view.Choreographer.doCallbacks(Choreographer.java:723) at android.view.Choreographer.doFrame(Choreographer.java:658) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

    opened by Timan86 0
  • Migrate to AndroidX

    Migrate to AndroidX

    We are using this library since long time and it works great. We have recently Migrating to AndroidX, although by adding android.enableJetifier=true and android.useAndroidX=true in gradle.properties converts all support package of dependency at build time. The stable release of 28.0.0 will be the final feature release packaged as android.support. All subsequent feature releases will only be made available as androidx-packaged artifacts. For more detail please check. I suggest you to update the library with AndroidX to avoid confusion.

    opened by persource 6
  • Are you want to support diffrent textcolor between positive button and negative button?

    Are you want to support diffrent textcolor between positive button and negative button?

    Sometimes, positive button need to be brought to the forefront with light color as red color( mean "waring“ ).

    http://7xqjy9.com1.z0.glb.clouddn.com/QQ%E5%9B%BE%E7%89%8720170425140553.jpg

    opened by leafseelight 1
  • Ability to pass more information to callbacks.

    Ability to pass more information to callbacks.

    Key changes:

    • Breaking change: int requestCode replaced by BaseDialogFragment dialog.
    • Added BaseDialogBuilder.setExtras(Bundle).
    • Added BaseDialogFragment.getRequestCode().

    You can now handle more information about dialog in callbacks. For example you ask user to confirm delete item from list. Now you can pass item id in extras and then get it from dialog.getArguments().getBundle(BaseDialogBuilder.ARG_EXTRAS).

    opened by romansl 1
Releases(2.3.3)
Owner
Avast
https://avast.github.io
Avast
Library project to display DialogFragment with a blur effect.

BlurDialogFragment This project allows to display DialogFragment with a burring effect behind. The blurring part is achieved through FastBlur algorith

tvbarthel 2.1k Dec 29, 2022
An Android library that provides a simple implementation of a DialogFragment

SimpleDialogFragment An Android library that provides a simple implementation of a DialogFragment. Are you tired of creating a new DialogFragment for

Julien Arzul 32 Oct 2, 2020
⭐ ‎‎‎‏‏‎ ‎Offers a range of beautiful sheets (dialogs & bottom sheets) for quick use in your project. Includes many ways to customize sheets.

Sheets Sleek dialogs and bottom-sheets for quick use in your app. Choose one of the available sheets or build custom sheets on top of the existing fun

Maximilian Keppeler 838 Dec 30, 2022
Sleek dialogs and bottom-sheets for quick use in your app

⭐ ‎‎‎‏‏‎ ‎Offers a range of beautiful sheets (dialogs & bottom sheets) for quick use in your project. Includes many ways to customize sheets.

Maximilian Keppeler 835 Dec 25, 2022
😍 A beautiful, fluid, and extensible dialogs API for Kotlin & Android.

Material Dialogs View Releases and Changelogs Modules The core module is the fundamental module that you need in order to use this library. The others

Aidan Follestad 19.5k Dec 29, 2022
A simple library for creating animated warnings/dialogs/alerts for Android.

Noty A simple library for creating animated warnings/notifications for Android. Examples Show me code Show me code Show me code Show me code Show me c

Emre 144 Nov 29, 2022
A small library replicating the new dialogs in android L.

L-Dialogs A small library replicating the new dialogs in android L. Set Up (Android Studio): Download the aar here: https://www.dropbox.com/s/276bhapr

Lewis Deane 572 Nov 11, 2022
📱 An Android Library for 💫fluid, 😍beautiful, 🎨custom Dialogs.

Aesthetic Dialogs for Android ?? ?? Android Library for ?? fluid, ?? beautiful, ?? custom Dialogs. Table of Contents: Introduction Types of Dialog Dar

Gabriel TEKOMBO 538 Dec 14, 2022
An easy-to-use Android library that will help you to take screenshots of specif views of your app and save them to external storage (Including API 29 Q+ with Scope Storage)

???? English | ???? Português (pt-br) ???? English: An easy to use Library that will help you to take screenshots ?? of the views in your app Step 1.

Thyago Neves Silvestre 2 Dec 25, 2021
[Deprecated] This project can make it easy to theme and custom Android's dialog. Also provides Holo and Material themes for old devices.

Deprecated Please use android.support.v7.app.AlertDialog of support-v7. AlertDialogPro Why AlertDialogPro? Theming Android's AlertDialog is not an eas

Feng Dai 468 Nov 10, 2022
AlertDialog for Android, a beautiful and material alert dialog to use in your android app.

AlertDialog for Android, a beautiful and material alert dialog to use in your android app. Older verion of this library has been removed

Akshay Masram 124 Dec 28, 2022
An easy to use, yet very customizable search dialog

search-dialog An awesome and customizable search dialog with built-in search options. Usage First add jitpack to your projects build.gradle file allpr

Mad Mirrajabi 518 Dec 15, 2022
An beautiful and easy to use dialog library for Android

An beautiful and easy to use dialog library for Android

ShouHeng 22 Nov 8, 2022
Material (Gregorian - Hijri) Date & Time Picker

Hijri Date Picker (UmAlQuraCalendar) This library offers a hijri (Islamic Calendar) Date Picker designed on Google's Material Design Principals For Pi

Abdullah Alhazmy 130 Dec 27, 2022
A Material Dialog Builder for Jetpack Compose

Compose Material Dialogs ?? Easy to use library to help you build complex dialogs using Jetpack Compose ?? Current Library Compose Version: 1.1.1 See

Pranav Maganti 433 Dec 31, 2022
CuteDialog- Android Custom Material Dialog Library

A Custom Material Design Dialog Library for Android Purpose CuteDialog is a Highly Customizable Material Design Android Library. CuteDialog allows dev

CuteLibs - Smart & Beautiful Android Libraries 7 Dec 7, 2022
Alert Dialog - You can use this extension instead of creating a separate Alert Dialog for each Activity or Fragment.

We show a warning message (Alert Dialog) to the user in many parts of our applications. You can use this extension instead of creating a separate Alert Dialog for each Activity or Fragment. Thanks to this extension, you can create a Dialog and call it in the Activity or Fragment you want and customize the component you want.

Gökmen Bayram 0 Jan 9, 2022
Android library that allows applications to add dialog-based slider widgets to their settings

Android Slider Preference Library Overview Slider represents a float between 0.0 and 1.0 Access with SliderPreference.getValue() or SharedPreferences.

Jay Petacat 135 Nov 29, 2022
Backport of Material dialogs with easy-to-use API based on DialogFragment

StyledDialogs for Android Demo app: Features: Compatible with Material Design Guidelines Same look for Android 2.2+ Built on top of standard DialogFra

Avast 2.2k Nov 29, 2022
A backport of the new Transitions API for Android

TransitionsBackport Android library for using the Transitions API released with Android KitKat on older versions of Android. At the moment, it is comp

Stéphane Guérin 578 Dec 29, 2022