我正在使用com.android.support:design:22.2.0库中的一个Snackbar。我用它来撤销删除。为了让我的生活更轻松,我将使UI看起来就像实际上已经从数据源中删除了一样,如果没有按下快餐店中的undo按钮,实际上会从数据源中执行删除操作。所以,我想知道什么时候Snackbar不再可见,所以删除这些条目是安全的。
我可以在Snackbar上调用getView(),但我不确定我应该使用哪个侦听器。我试过setOnSystemUiVisibilityChangeListener(),但这不起作用,我相信它只适用于系统状态栏。
此外,Snackbar不能扩展,因为它有一个私有构造函数。
发布于 2015-10-12 08:32:39
Google设计库支持版本23中的Snackbar回调。见Snackbar文档和回调文档。然后,当Snackbar被解职时(以及显示时)以及解雇类型(如果这对您有用的话),您将得到通知:
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
//see Snackbar.Callback docs for event details
...
}
@Override
public void onShown(Snackbar snackbar) {
...
}
});发布于 2016-03-02 12:56:57
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
if (event == Snackbar.Callback.DISMISS_EVENT_TIMEOUT) {
// Snackbar closed on its own
}
}
@Override
public void onShown(Snackbar snackbar) {
...
}
});发布于 2019-01-18 15:17:42
科特林的Snackbar.addCallback
val snackBar = Snackbar
.make(view, "Text Snackbar", Snackbar.LENGTH_LONG)
.addCallback(object : BaseTransientBottomBar.BaseCallback<Snackbar>() {
override fun onShown(transientBottomBar: Snackbar?) {
super.onShown(transientBottomBar)
}
override fun onDismissed(transientBottomBar: Snackbar?, event: Int) {
super.onDismissed(transientBottomBar, event)
}
})
val snackBarView = snackBar.view
snackBarView.setBackgroundColor(Color.RED)
snackBar.show()https://stackoverflow.com/questions/30926380
复制相似问题