首页 文章

如何在召唤行动后保持小吃店保持开放状态

提问于
浏览
7

我使用快餐栏通知我的应用程序的用户他们没有连接到互联网 . 我在快餐栏上添加了一个“重试”动作,重新检查连接 . 我希望小吃店保持显示,直到我自己解雇它(当找到互联网连接时),但我无法让它工作 . 每当我点击动作时,小吃店就会解散 .

我将持续时间设置为无限期,而快餐栏确实无限期地保持开放状态,但是当我点击动作时它就会消失 .

我在网上看到点击动作后自动关闭小吃栏并不总是默认行为 .

edit:

我觉得我的问题可能很糟糕 . 我有一个带有动作的小吃吧,但我不希望快餐栏在执行动作时关闭,它会自动执行动作 .

2 回答

  • 0

    您可以覆盖按钮的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();
                    }
                });
            }
     }
    
  • 1

    你可以试试这个

    final Snackbar snackbar = Snackbar.make("your view".getRootView(), "Annotations", Snackbar.LENGTH_INDEFINITE);
        snackbar.setAction("your action", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // do something
                new Handler().postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        snackbar.show();
                    }
                }, 1);
            }
        });
        snackbar.show();
    

    点击操作后,小吃栏将自动关闭但有一些延迟,所以如果您直接在 OnClickListener 中拨打 snackbar.show(); ,小吃店将不会显示 . 因此,为了使它始终显示,在显示它之前给它一些延迟 . (令人惊讶的是,一毫秒的延迟就足够了)

相关问题