Android Full-Screen Dialog Library
Существует компонент
в Material Design,
который предназначен для отображения диалога во весь экран вашего приложения. Выглядит это так:
К сожалению, в стандартной библиотеке дизайна не реализован такой компонент. Поэтому предлагаю вашему вниманию Full-Screen Dialog Library.
Давайте посмотрим, как она работает:
Для того, чтобы добавить такую возможность себе в проект, необходимо в вашем
build.gradle
добавить зависимость:
repositories {
jcenter()
}
dependencies {
compile('com.nikialeksey:fullscreendialog:<latest version>@aar') {
transitive true
}
}
Далее нужно создать и открыть дилог:
new FsDialog(context, R.style.AppTheme, "Title", new FsDialogCloseAction() {
@Override
public void onClose(@NonNull final FsDialog dialog) {
// close action
}
}, "Action Title", new FsDialogAction() {
@Override
public void onAction(@NonNull final FsDialog dialog) {
// base action
}
}, contentView).show();
, где:
R.style.AppTheme
- тема, из нее берется цвет основного текста для заголовка диалога, и кнопок действий, основной цвет дляToolbar
"Title"
- это текст заголовка диалога"Action Title"
- это текст положительного действия диалогаcontentView
- это вьюха контента диалога
Важно, что FsDialog
наследуется от AppCompatDialog
, но, например, изменить заголовок
методом setTitle
не удастся. Предполагается, что объект FsDialog
иммутабельный.
В компоненте full-screen dialog
описано, что необходимо при закрытии диалога
показывать предупреждение, если пользователь успел изменить данные в контенте. В следующих
версиях такая возможность будет добавлена.