Как предотвратить закрытие 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();
Ответы
Ответ 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();