2016-02-11 7 views
1

Мне нужно создать SnackBar, который требует, чтобы пользователь щелкнул, чтобы уволить. Как мне это сделать? Следующие не будут компилироваться, и я не хочу превращать переменную SnackBar в поле.SnackBar нажмите, чтобы отклонить

final Snackbar snack = Snackbar.make(findViewById(R.id.notAvailable), 
       "You don't have this feature", 
       Snackbar.LENGTH_INDEFINITE) 
       .setAction("OK", new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       snack.dismiss(); 
      } 
     }); 
     snack.show(); 

ответ

3

Использование обычного onClick Listener. выполнить действие click и l et it empty, empty отклонить sanckbar себя. При нажатии на пустое действие нажмите snackbar.

Образец кода.

Snackbar.make(coordinatorLayoutView, "Service Enabled", Snackbar.LENGTH_LONG) 
         .setAction("DISMISS", new View.OnClickListener() { 
          @Override 
          public void onClick(View v) { 
          } 
         }) 
         .show(); 
+0

Это правильный подход, чтобы закрыть закусочную. Однако, если вы хотите, вы можете иметь объект Snackbar и использовать методы setAction() и show() для лучшего понимания. –

+0

Чтобы сохранить видимость в снэкбабе, ему также нужен атрибут LENGTH_INDEFINITE (как показано в коде вопросов). – Tequilaman