Подтвердить что ты не робот

Как предотвратить закрытие Snackbar?

Я использую элемент управления, называемый Snackbar, из сторонней библиотеки - github.com/navasmdc/MaterialDesignLibrary.

Проблема в том, что автоматически закрывается, например, Toast.

Что я пытаюсь сделать: Он должен оставаться, пока я не нажму btn

Фрагмент кода, который я использую

new SnackBar(ActSplash.this,
      "Do you want change color of this button to red?",
      "yes", 
       new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              ButtonFlat btn = (ButtonFlat) findViewById(R.id.buttonSnackBar);
             //btn.setTextColor(Color.RED);
        }
}).show();

EDIT:

new SnackBar(ActSplash.this,
                                "Do you want change color of this button to red?",
                                "yes", new View.OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                ButtonFlat btn = (ButtonFlat) findViewById(R.id.buttonSnackBar);
                                //btn.setTextColor(Color.RED);
                            }
                        }).setIndeterminate(true)
                                .show();

Показывает, что ошибка не может решить show()


РЕДАКТИРОВАТЬ - НОВЫЕ ANDROID DOCS

Как предотвратить закрытие закутки андроидов

Snackbar
                 .make(((ActMedicalRecordDetailNew)getActivity()).getMainContent(), R.string.snackBarNoNetConnectivity, Snackbar.LENGTH_LONG)
                    .setAction(R.string.snackBarTryAgain, new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                            Intent intent = getActivity().getIntent();
                            getActivity().finish();
                            startActivity(intent);
                        }
                    })
                    .show();
4b9b3361

Ответ 1

Edit

Snackbar теперь входит в новую библиотеку Android Support Design. вы можете использовать LENGTH_INDEFINITE как продолжительность, если вы хотите показать его на неопределенный срок., Вам следует отказаться от библиотеки сторонних разработчиков, которую вы используете для нее

Старый ответ

вам нужно позвонить .setIndeterminate(true) перед вызовом show()

final SnackBar tmp = new SnackBar(ActSplash.this,
      "Do you want change color of this button to red?",
      "yes", 
       new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              ButtonFlat btn = (ButtonFlat) findViewById(R.id.buttonSnackBar);
             //btn.setTextColor(Color.RED);
        }
});
tmp.setIndeterminate(true);
tmp.show();

Ответ 2

snackbar.setDuration(Snackbar.LENGTH_INDEFINITE);

Ответ 3

Просто сделайте

Snackbar.make(layout, "Some text", Snackbar.LENGTH_INDEFINITE)
    .show();