5 способов создания пользовательских тостов с видимостью 20 секунд в Android

Всплывающие уведомления – это популярный способ отображения временных сообщений или уведомлений в приложениях Android. По умолчанию всплывающее сообщение отображается в течение короткого времени, обычно около 2–3 секунд. Однако в некоторых ситуациях вам может потребоваться настроить продолжительность всплывающего уведомления, чтобы оно было видимым в течение более длительного периода, например 20 секунд. В этой статье мы рассмотрим несколько методов создания собственных всплывающих уведомлений с видимостью в течение 20 секунд в Android, а также приведем примеры кода.

Метод 1: обработчик и Runnable
Один из способов добиться 20-секундной видимости всплывающего уведомления — использовать Handler и Runnable. Вот пример фрагмента кода:

Toast toast = Toast.makeText(getApplicationContext(), "Custom Toast", Toast.LENGTH_LONG);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        toast.cancel();
    }
}, 20000); // 20 seconds

Метод 2: CountDownTimer
Другой подход заключается в использовании CountDownTimer, который обеспечивает простой способ планирования действий через регулярные промежутки времени. Вот пример:

Toast toast = Toast.makeText(getApplicationContext(), "Custom Toast", Toast.LENGTH_LONG);
toast.show();
new CountDownTimer(20000, 1000) {
    public void onTick(long millisUntilFinished) {
        // Do nothing on tick
    }
    public void onFinish() {
        toast.cancel();
    }
}.start();

Метод 3: настраиваемое представление всплывающего уведомления.
Вы также можете создать собственное представление всплывающего уведомления, заполнив XML-файл макета и установив его в качестве представления всплывающего уведомления. Это позволяет контролировать внешний вид и поведение тоста. Вот пример:

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
        (ViewGroup) findViewById(R.id.custom_toast_container));
Toast toast = new Toast(getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
        toast.cancel();
    }
}, 20000); // 20 seconds

Метод 4: Snackbar с произвольной длительностью
Snackbar — еще один вариант отображения временных сообщений. Хотя он обычно используется для более длительных сообщений, вы можете изменить его продолжительность, чтобы добиться 20-секундной видимости. Вот пример:

Snackbar snackbar = Snackbar.make(view, "Custom Toast", 20000); // 20 seconds
snackbar.show();

Метод 5. Пользовательская библиотека всплывающих уведомлений
Если вы предпочитаете более комплексное решение, вы можете рассмотреть возможность использования собственной библиотеки всплывающих уведомлений, например SuperToasts или StyleableToast. Эти библиотеки предлагают дополнительные функции и возможности настройки, включая продолжительность всплывающего уведомления. Вы можете найти соответствующую документацию и примеры в их репозиториях GitHub.

В этой статье мы рассмотрели пять различных методов создания собственных всплывающих уведомлений с видимостью в течение 20 секунд в Android. От использования обработчиков и Runnable до настройки всплывающих окон и использования внешних библиотек — у вас есть целый ряд вариантов на выбор в зависимости от ваших конкретных требований. Не стесняйтесь экспериментировать с этими методами и выберите тот, который лучше всего соответствует потребностям вашего приложения.