Snackbar是一种常用的用户界面组件,用于在应用程序中显示短暂的通知消息。当Snackbar被关闭后,可以通过以下几种方式重新打开Snackbar:
Snackbar snackbar = Snackbar.make(view, "Message", Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("Action", new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击Action按钮的回调
}
});
snackbar.show();
在这种模式下,Snackbar会一直显示,直到手动关闭或者调用snackbar.dismiss()
方法关闭。
Snackbar snackbar = Snackbar.make(view, "Message", Snackbar.LENGTH_SHORT);
snackbar.setAction("Action", new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击Action按钮的回调
}
});
snackbar.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
// Snackbar关闭时的回调
if (event == DISMISS_EVENT_SWIPE || event == DISMISS_EVENT_TIMEOUT) {
// 重新打开Snackbar
Snackbar.make(view, "Message", Snackbar.LENGTH_SHORT).show();
}
}
});
snackbar.show();
在这种方式下,当Snackbar被关闭时,会触发onDismissed()
方法,在该方法中可以判断关闭的原因,如果是用户滑动关闭或者超时关闭,可以重新创建并显示一个新的Snackbar。
final Snackbar snackbar = Snackbar.make(view, "Message", Snackbar.LENGTH_SHORT);
snackbar.setAction("Action", new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击Action按钮的回调
}
});
snackbar.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// 延迟一定时间后重新打开Snackbar
snackbar.show();
}
}, 2000); // 延迟时间,单位为毫秒
在这种方式下,Snackbar会在延迟时间后重新显示。
以上是几种常见的重新打开Snackbar的方法,根据具体的需求和场景选择合适的方式。
腾讯技术创作特训营第二季第4期
企业创新在线学堂
腾讯云“智能+互联网TechDay”
云+社区沙龙online[数据工匠]
云+社区沙龙online [技术应变力]
云+社区沙龙online [国产数据库]
高校公开课
领取专属 10元无门槛券
手把手带您无忧上云