【问题标题】:Create a Sequence so that code runs "one after another"?创建一个序列以便代码“一个接一个地”运行?
【发布时间】:2017-12-20 22:06:00
【问题描述】:

快速提问...

我目前正在使用一个库来“展示”视图,以帮助初次使用我的应用的用户了解如何执行某些功能。我的问题是我正在使用的库 MaterialIntroView 似乎没有任何内置方法,我可以创建一个序列来在另一个完成后显示一个“展示”。

我希望能够在第一个被用户单击关闭后显示另一个 MaterialIntroView。

我尝试使用库提供的 .setListener(new MaterialIntroListener() 方法并在 onClick 中简单地插入另一个 MaterialIntroView.Builder,但是在第一个被关闭后,第二个展示视图不会显示。显然这不是正确的方法......

是否有任何内置的 Android 方法可以用来创建某种序列,可以在一批代码完成后运行另一批代码?请注意,我不希望在一定时间后显示一个 - 相反,我希望下一个视图仅在用户单击关闭第一个视图后显示。

非常感谢您的帮助!让我知道是否还有其他需要澄清的地方。

【问题讨论】:

    标签: java android showcaseview


    【解决方案1】:

    您可以查看动画需要多长时间,然后集成一个简单的计时器,在下一个动画开始之前暂停该过程。

    try {
            Thread.sleep(milliseconds);
        } catch (Exception e) {
    
        }
    

    milliseconds 是以毫秒(MS)为单位的时间占位符,因此如果输入 1000,线程将等待 1 秒

    【讨论】:

    • 感谢您的回复,ein siedler!我会试试这个方法,看看它是如何工作的。
    • 我想我对Thead.sleep 的问题是我似乎无法让它真正等待第一个showcaseview 在它运行之前完成显示。我尝试将整个块放入另一个展示视图代码中的setListener 行,但它从未显示下一个 - 即使使用Thread.sleep。如果我尝试将它放在第一个展示视图的代码块之外,它只会运行而无需等待用户的点击。
    • 好吧,看来我想通了。我搞砸了,并没有注意到我为两个展示视图设置了相同的“UsageId”。哎呀!另外,我已经设置了它,所以展示视图只会显示一次,并且因为它们共享相同的 id,第二个从来没有机会显示,直到我更改了它的 id!我只是将第二个展示视图放回第一个代码块的.setListener 部分,现在它可以工作了。无论如何感谢您的帮助,ein siedler!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多