Snackbar.make(...).show()将只显示最后的快捷键,不像吐司,其他的零食条都不见了。
for(int i = 1;i < 11;i++) {
Snackbar.make(..., "number: " + i, Snackbar.LENGTH_SHORT).show();
}有时,当snackbar应该显示在网络任务之后,而一个应该在网络任务之前显示时,秒状态栏就永远不会显示。
我在用坐标布局。
发布于 2015-12-08 08:21:48
请参考Android组件文档:
自动从屏幕上超时。出于可用性的原因,snackbar不应该包含访问核心用例的唯一方法。它们不应该是持久的或堆叠的,因为它们在屏幕上的其他元素之上(来源)
发布于 2015-12-08 08:46:17
我现在实现了自己的队列:
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();
}https://stackoverflow.com/questions/34150982
复制相似问题