DialogSheet

An Android library to create fully material designed bottom dialogs similar to the Android Pay app.

Screenshots


Download the sample apk here.


Usage:

Adding the depencency

Add this to your root build.gradle file:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Now add the dependency to your app build.gradle file:

compile 'com.github.marcoscgdev:DialogSheet:1.0.5'

Creating the dialog with Java

Here is a complete snippet of it usage:

new DialogSheet(this)
    .setTitle(R.string.app_name)
    .setMessage(R.string.lorem)
    .setCancelable(false)
    .setPositiveButton(android.R.string.ok, new DialogSheet.OnPositiveClickListener() {
        @Override
        public void onClick(View v) {
            // Your action
        }
    })
    .setNegativeButton(android.R.string.cancel, new DialogSheet.OnNegativeClickListener() {
        @Override
        public void onClick(View v) {
            // Your action
        }
    })
    .setBackgroundColor(Color.BLACK) // Your custom background color
    .setButtonsColorRes(R.color.colorPrimary)  // Default color is accent
    .show();

Creating the dialog with Kotlin

Here is a complete snippet of it usage:

val dialogSheet:DialogSheet = DialogSheet(this@MainActivity)
dialogSheet.setCancelable(false)
    .setTitle(R.string.app_name)
    .setMessage(R.string.lorem)
    .setCancelable(false)
    .setPositiveButton(android.R.string.ok) {
        // Your action
    }
    .setNegativeButton(android.R.string.cancel) {
        // Your action
    }
    .setBackgroundColor(Color.BLACK) // Your custom background color
    .setButtonsColorRes(R.color.colorPrimary)  // Default color is accent
    .show()

(TIP) Adding a custom view:

  • Via inflated view:
View view = View.inflate(context, R.layout.custom_dialog_view, null);
dialogSheet.setView(view);
  • Via layout resource:
dialogSheet.setView(R.layout.custom_dialog_view);

// Access dialog custom inflated view
View inflatedView = dialogSheet.getInflatedView();
Button button = (Button) inflatedView.findViewById(R.id.customButton);
...

See the sample project to clarify any queries you may have.


GitHub