Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mono0926/adaptive_dialog

Show alert dialog or modal action sheet adaptively according to platform.
https://github.com/mono0926/adaptive_dialog

cupertino cupertino-design cupertino-widgets flutter ios material material-design material-theme text textfield uitextfield widget

Last synced: 2 days ago
JSON representation

Show alert dialog or modal action sheet adaptively according to platform.

Awesome Lists containing this project

README

        

# adaptive_dialog

Show alert dialog or modal action sheet adaptively according to platform.

Web Demo: https://mono0926.com/adaptive_dialog/

## [showOkAlertDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showOkAlertDialog.html)

Convenient wrapper of [showAlertDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showAlertDialog.html).

| iOS | Android |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| n1 | n2 |

## [showOkCancelAlertDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showOkCancelAlertDialog.html)

Convenient wrapper of [showAlertDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showAlertDialog.html).

| iOS | Android |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| n3 | n4 |
| n5 | n6 |

## [showConfirmationDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showConfirmationDialog.html)

Show [Confirmation Dialog](https://material.io/components/dialogs#confirmation-dialog). For Cupertino, fallback to ActionSheet.

| iOS | Android |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| n3 | n5 |

## [showModalActionSheet](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showModalActionSheet.html)

| iOS | Android |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| n7 | n8 |
| n9 | n10 |
| n11 | n12 |

## [showTextInputDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showTextInputDialog.html)

| iOS | Android |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| n1 | n2 |
| n3 | n4 |

## [showTextAnswerDialog](https://pub.dev/documentation/adaptive_dialog/latest/adaptive_dialog/showTextAnswerDialog.html)

Show text input dialog until answer is correct or cancelled.
This is useful for preventing very destructive action is executed mistakenly.

| iOS | Android |
| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| n5 | n6 |

---

# FAQ

## How can I customize it flexibly?

This packages keeps usage and UI simple like iOS official alert dialog.
Therefore, if you need more flexibility than this package provides, I recommend that you build your own directly using standard APIs to meet your requirements without using this package.

- https://github.com/mono0926/adaptive_dialog/issues/19#issuecomment-754476937
- https://github.com/mono0926/adaptive_dialog/issues/76#issuecomment-1120686982
- https://github.com/mono0926/adaptive_dialog/issues/108#issuecomment-1543068734

## The getter `modalBarrierDismissLabel` was called on null

`adaptive_dialog` uses Cupertino-style widgets internally on iOS, so `GlobalCupertinoLocalizations.delegate` is required under certain conditions.

```dart
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

class App extends StatelessWidget {
const App({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
//...
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate, // This is required
],
);
}
}
```

## The input text color same with backgound when using CupertinoTextInputDialog

This fixes the problem.

```dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart' hide Router;

class App extends StatelessWidget {
const App({Key key}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
darkTheme: ThemeData(
cupertinoOverrideTheme: const CupertinoThemeData(
textTheme: CupertinoTextThemeData(), // This is required
),
),
);
}
}
```