2015-12-08 6 views
0

Snackbar.make(...).show() покажет только последнюю закусочную, в отличие от других закусочных.Стол закусочной всегда будет показывать только последнюю закусочную

for(int i = 1;i < 11;i++) { 
    Snackbar.make(..., "number: " + i, Snackbar.LENGTH_SHORT).show(); 
} 

Иногда, когда закусочная должна показать после сетевой задачи, и нужно показать, прежде чем сетевая задачу, секунды закусочная никогда не показывается.

Im используя координатор.

+0

Закусочные не предназначены для целей лесозаготовок, для что использование 'Log.d' – pskink

+0

это был просто пример, когда из-за задержки в сети 2 закуски показывают в то же время – Fabian

ответ

1

Пожалуйста сошлитесь Android компоненты документы:

автоматически время Закусочные с экрана. По соображениям удобства использования snackbars не должен содержать единственный способ доступа к основному варианту использования. Они не должны быть стойкими или быть уложены, так как они выше других элементов на экране (Source)

+0

, вы думаете, что это отображение после и перед сетевым запросом укладывается? – Fabian

0

Теперь я реализовал свою собственную очередь:

protected ArrayList<Snackbar> mSnackbarList = new ArrayList<>(); 

protected Snackbar.Callback mCallback = new Snackbar.Callback() { 
    @Override 
    public void onDismissed(Snackbar snackbar, int event) { 
     mSnackbarList.remove(snackbar); 
     if (mSnackbarList.size() > 0) 
      displaySnackbar(mSnackbarList.get(0)); 
    } 
}; 

public void addQueue(Snackbar snackbar){ 
    setLayoutParams(snackbar); 
    snackbar.setCallback(mCallback); 
    boolean first = mSnackbarList.size() == 0; 
    mSnackbarList.add(snackbar); 
    if(first) 
     displaySnackbar(snackbar); 
} 

public void displaySnackbar(Snackbar snackbar){ 
    snackbar.show(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^