Snackbar 未显示,每次我打开应用程序时都会崩溃
Snackbar not showing, the app crashes every time I open it
我试图解决这个错误,但没有成功。
当打开应用程序时,应用程序崩溃并立即停止。
有什么不对的地方吗?
private void popupSnackBarForCompleteUpdate() {
Snackbar.make(findViewById(android.R.id.content), "New app is ready!", Snackbar.LENGTH_INDEFINITE)
.setAction("Install", view -> {
if (appUpdateManager != null) {
appUpdateManager.completeUpdate();
}
})
.setActionTextColor(getResources().getColor(R.color.installColor))
.show();
}
抛出以下错误:
java.lang.IllegalArgumentException: No suitable parent found from the given view. Please provide a valid view.
at com.google.android.material.snackbar.Snackbar.make(Snackbar.java:158)
在切换到 android.R.id.content
之前我有以下代码
private void popupSnackBarForCompleteUpdate() {
Snackbar snackbar =
Snackbar.make((CoordinatorLayout) findViewById(R.id.snackbar_layout), "New app is ready!", Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("Install", view -> {
if (appUpdateManager != null) {
appUpdateManager.completeUpdate();
}
});
snackbar.setActionTextColor(getResources().getColor(R.color.installColor));
snackbar.show();
}
如果你想为你的 activity 获取根视图,那么你应该使用:- findViewById(android.R.id.content).getRootView()
。 (您在这里缺少 getRootView()
)。
否则你也可以使用 requireView().rootView
它会 return 你的片段的根视图并查看 this 答案以及从你的 activity.
我试图解决这个错误,但没有成功。 当打开应用程序时,应用程序崩溃并立即停止。 有什么不对的地方吗?
private void popupSnackBarForCompleteUpdate() {
Snackbar.make(findViewById(android.R.id.content), "New app is ready!", Snackbar.LENGTH_INDEFINITE)
.setAction("Install", view -> {
if (appUpdateManager != null) {
appUpdateManager.completeUpdate();
}
})
.setActionTextColor(getResources().getColor(R.color.installColor))
.show();
}
抛出以下错误:
java.lang.IllegalArgumentException: No suitable parent found from the given view. Please provide a valid view.
at com.google.android.material.snackbar.Snackbar.make(Snackbar.java:158)
在切换到 android.R.id.content
private void popupSnackBarForCompleteUpdate() {
Snackbar snackbar =
Snackbar.make((CoordinatorLayout) findViewById(R.id.snackbar_layout), "New app is ready!", Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("Install", view -> {
if (appUpdateManager != null) {
appUpdateManager.completeUpdate();
}
});
snackbar.setActionTextColor(getResources().getColor(R.color.installColor));
snackbar.show();
}
如果你想为你的 activity 获取根视图,那么你应该使用:- findViewById(android.R.id.content).getRootView()
。 (您在这里缺少 getRootView()
)。
否则你也可以使用 requireView().rootView
它会 return 你的片段的根视图并查看 this 答案以及从你的 activity.