gpt4 book ai didi

android - Snackbar isQueued() 什么时候使用? (如何在 snackbar 排队)

转载 作者:IT老高 更新时间:2023-10-28 23:23:06 27 4
gpt4 key购买 nike

如果我连续多次调用snackbar,则只显示最后一个snackbar 项。

例如使用下面的代码,只会显示第 3 项。似乎第 1 项和第 2 项的 Snackbar.LENGTH_LONG 被忽略(并设置为零?)。

Snackbar.make(view, "Item 1", Snackbar.LENGTH_LONG).show();
Snackbar.make(view, "Item 2", Snackbar.LENGTH_LONG).show();
Snackbar.make(view, "Item 3", Snackbar.LENGTH_LONG).show();

然而在google documents ,我看到可以对消息进行排队。

public boolean isShownOrQueued ()

Returns whether this Snackbar is currently being shown,
or is queued to be shown next.

那么我们实际上如何在 snackbar 排队?

最佳答案

这里有一个部 fragment 段可以解决您的问题,尽管它可能无法解决做正确的事情:

//using a queue to pass string to the snackbar
Queue<String> myQueue = new LinkedList<String>();
myQueue.offer("item 1");
myQueue.offer("item 2");
myQueue.offer("item 3");
displaysnack(myQueue, view);

public void displaysnack(final Queue dQueue, final View view){
Snackbar.make(view, (String)dQueue.poll(), Snackbar.LENGTH_LONG).setCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
switch (event) {
case Snackbar.Callback.DISMISS_EVENT_ACTION:
Toast.makeText(getApplicationContext(), "Clicked the action", Toast.LENGTH_LONG).show();
break;
//once the timeout expires, display the next one in the queue.
case Snackbar.Callback.DISMISS_EVENT_TIMEOUT:
Toast.makeText(getApplicationContext(), "Showing: "+ (dQueue.size()), Toast.LENGTH_SHORT).show();
if (dQueue.size()>0){displaysnack(dQueue, view);}
break;
case Snackbar.Callback.DISMISS_EVENT_CONSECUTIVE:
//Toast.makeText(getApplicationContext(), "Multiple Shown", Toast.LENGTH_SHORT).show();
break;
}
}

关于android - Snackbar isQueued() 什么时候使用? (如何在 snackbar 排队),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33264764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com