在 Fragment 销毁时关闭活动的小吃栏

abd*_*him 6 android android-layout android-fragments android-studio android-snackbar

如何确保一旦片段被销毁,任何可见的 Snackbar(特别是那些带有 Snackbar.length_indefinite 的)都会被消除?

我应该为所有 Snackbars 使用一个通用的 globar 变量并调用解雇吗?像下面这样的东西?

Fragment1.java

private Snackbar snackbar;

@Override
public onDestroy(){
    snackbar.dismiss();
}

public Method1(){
    snackbar = Snackbar.make(ActivityMain.coordinatorLayout, "Text 1", snackbar.length_indefinite);
    snackbar.show();
}

public Method2(){
    snackbar = Snackbar.make(ActivityMain.coordinatorLayout, "Text 2", snackbar.length_indefinite);
    snackbar.show();
}
//coordinatorLayout is a static variable in ActivityMain which stores reference to the CoordinatorLayout
Run Code Online (Sandbox Code Playgroud)

Ami*_*ela 5

如何确保一旦片段被销毁,任何可见的 Snackbar(特别是那些带有 Snackbar.length_indefinite 的)都会被消除?

要消除它,请调用 onDestroy(); 方法正如你所做的那样

我应该为所有 Snackbars 使用一个通用的 globar 变量并调用解雇吗?像下面这样的东西?

是的,您可以这样做,因为您的课堂上多次使用了小吃栏。所以最好将其声明为全局的。

在developer.android.com上查看小吃店的更多详细信息