如何在操作后保持快餐栏打开状态为
问题描述:
我使用快餐栏通知我的应用程序用户他们没有连接到互联网。 我向小吃店添加了“重试”操作,重新检查连接。 我希望快餐栏保持显示状态,直到我自己解除它(当找到互联网连接时),但我无法使其正常工作。每当我点击该动作时,小吃店都会解散。如何在操作后保持快餐栏打开状态为
我将持续时间设置为无限期,快餐栏会无限期地保持打开状态,但是当我点击该操作时它会被取消。
我在线阅读,点击动作后自动解散快餐栏并不总是默认行为。
编辑:
我觉得我的问题可能会受到严重的措辞。 我有一个小吃店,但我不希望小吃店在执行操作时关闭,它会自动执行atm操作。
答
您可以覆盖为按钮设置的OnClickListener。 首先请与小吃吧,并设置动作与一些虚拟听众
Snackbar snackbar = Snackbar.make(view,"TXT",Snackbar.LENGTH_LONG).setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View v) { }
});
然后找到按钮,并设置你的听者
snackbar.show();
ViewGroup group = (ViewGroup) snackbar.getView();
for(int i=0; i< group.getChildCount();i++){
View v = group.getChildAt(i);
if(v instanceof Button){
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
YOUR_ACTION();
}
});
}
}
+0
要添加到此,而不是遍历ViewGroup,你可以使用'findViewById'。即按钮actionButton =(按钮)snackbar.getView()。findViewById(android.support.design.R.id.snackbar_action);' – RocketSpock
为什么不创建一个新的小吃吧,当用户点击“重试” ?恕我直言,它甚至可以等待一秒钟,然后再显示新快餐栏作为视觉反馈,告诉用户“是的,我重试了,但仍然没有互联网连接”。 (这并不是说没有办法做你想做的事) – tjollans
所以你想显示蛇栏,直到用户手动解雇它。对? –
那么,用户可以通过刷卡来解雇它,这与我没有任何问题。我只是不希望它在点击动作时自动关闭 – DeryckeS