gpt4 book ai didi

android - 当我回到上一个 Activity 时 SnackBar 仍然显示

转载 作者:行者123 更新时间:2023-12-01 23:42:04 25 4
gpt4 key购买 nike

我在Activity A 中有一个SnackBar,如果我在Activity A 中点击一个Button,我会导航到Activity B。如果我立即返回,我可以看到 SnackBar 仍在 Activity A 中显示。

如何在用户离开 Activity 后制作 SnackBar dismiss

我的努力:

编写了一个通用类来处理 SnackBar 的创建和关闭

创建 SnackBar:

public static Snackbar showSnackBar(View view, int text) {
if(snackBar != null && snackBar.isShown()) {
snackBar.setText(text);
} else {
snackBar = snackBar.make(view, text, Snackbar.LENGTH_LONG);
}
if (!AppRunningState.isApplicationBroughtToBackgrounds(App.get())) {
snackBar.show();
}
return snackBar;
}

onPause 中:

@Override
protected void onPause() {
super.onPause();
SVSnackBar.dismissSnackBar();
}

public static void dismissSnackBar() {
if (snackBar != null) {
snackBar.dismiss();
}
}

最佳答案

好吧……通常您只需将一个 Snackbar 用于一个 Activity/layout。因此,一种方法是编写一个包含对 Snackbar 的引用的 BaseActivity。

public class BaseActivity extends Activity { // use the one you want to extend

private Snackbar snackbar;

public void showSnackbar(View view, int textResId) {
if (snackbar != null) {
snackbar.dismiss();
}
snackbar = Snackbar.make(view, textResId, Snackbar.LENGTH_LONG);
snackbar.show();
}

@Override
public void onPause() {
super.onPause();
if (snackbar != null) {
snackbar.dismiss();
}
}
}

现在始终为您正在使用的每个 Activity 扩展 BaseActivity。这基本上与您正在做的事情相同,但您不需要额外的类来处理您的 Snackbar,也不必每次都覆盖 onPause()。

关于android - 当我回到上一个 Activity 时 SnackBar 仍然显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35176915/

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