После того, как Google представила Material Design на Google I/O 2014 многие разработчики приложений под Android хотят внедрить его в свои приложения.
В англоязычном интернете есть приличное количество туториалов по внедрению Material Design в приложение, но не многие русскоязычные Android-разработчики умеют ими пользоваться. В связи с этим я создал рубрику «Material Design», в которой будут публиковаться обучающие статьи с использованием элементов в стиле Material Design. Кроме support-библиотеки v21, в проектах также будут использоваться библиотеки с GitHub.
В этой статье мы научимся работать с библиотекой MaterialDialog. Ссылки на исходники и проект с примером вы можете найти в конце статьи.
MaterialDialog materialDialog = new MaterialDialog(context); materialDialog.setTitle("Ваш заголовок"); materialDialog.setMessage("Ваш текст");
Думаю, что код предельно ясен и пояснений не требует. Для того, чтобы показать диалог нужно вызвать метод show():
materialDialog.show();
Чтобы добавить кнопки «OK» и «Отмена» вызываем методы setPositiveButton и setNegativeButton., на вход подаем текст кнопки и OnClickListener:
materialDialog.setPositiveButton("OK", new View.OnClickListener() { @Override public void onClick(View v) { materialDialog.dismiss(); Toast.makeText(context, "OK", Toast.LENGTH_LONG).show(); } }); materialDialog.setNegativeButton("Отмена", new View.OnClickListener() { @Override public void onClick(View v) { materialDialog.dismiss(); Toast.makeText(context, "Cancel", Toast.LENGTH_LONG).show(); } });
Если вы хотите, чтобы диалог исчезал при нажатии на область вогруг окна, то вызовите метод setCanceledOnTouchOutside и передайте на вход true:
materialDialog.setCanceledOnTouchOutside(true);
Устанавливаем картинку на фон:
materialDialog.setBackgroundResource(R.drawable.background);
Также MaterialDialog’у можно присвоить свой View:
LayoutInflater layoutInflater = getLayoutInflater(); View content = layoutInflater.inflate(R.layout.custom_layout, null); materialDialog.setContentView(content);
Закрываем диалог
materialDialog.dismiss();
Библиотека на GitHub: MaterialDialog.
Исходники примера: MaterialDialog.