Snackbar stack will always show only the last snackbar

后端 未结 2 978
名媛妹妹
名媛妹妹 2021-01-26 02:48

The Snackbar.make(...).show() will only show the last snackbar unlike toast the other snackbars are gone.

for(int i = 1;i < 11;i++) {  
   Snackb         


        
相关标签:
2条回答
  • 2021-01-26 03:25

    I implemented now my own queue:

    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();
    }
    
    0 讨论(0)
  • 2021-01-26 03:37

    Please refer the Android components docs:

    Snackbars automatically time out from the screen. For usability reasons, snackbars should not contain the only way to access a core use case. They should not be persistent or be stacked, as they are above other elements on screen (Source)

    0 讨论(0)
提交回复
热议问题