【问题标题】:LibGDX - Is there any difference between using "Back ImageButton" & "Keys.BACK"?LibGDX - 使用“Back ImageButton”和“Keys.BACK”有什么区别吗?
【发布时间】:2015-05-28 05:25:41
【问题描述】:

我正在制作两个屏幕 A 和 B。假设它们是屏幕 A 和屏幕 B。

在 screenA 中,我使用 setScreen(screenB) 将 screenA 传递给 screenB。

在 screenB 中,我有两种方法,两个将 screenB 传递回 screenA。

方法一

我创建了一个名为“Back”的 imageButton。当我按下 imageButton 时,它会 使用 setScreen(screenA) 将 screenB 传回给 screen A。

方法二

我使用软键 Keys.BACK 将 screenB 传回 screenA。

我的问题是:

1)method1和method2一样吗?

2) 我下面的概念正确吗?

方法 1 堆栈:screenA-->screenB 在顶部-->另一个 ScreenA 在顶部。

Mehod2 堆栈:A-->screenB 在顶部,然后 screenB 被移除(如果 Keys.BACK 被按下)并仅返回到 A。

如果我的概念是正确的,Method1 会比 Method2 使用更多的内存吗?

希望您能理解我的问题,如有任何麻烦请见谅。

感谢回复。

【问题讨论】:

    标签: android libgdx imagebutton multiscreen


    【解决方案1】:

    我相信 setScreen() 没有做你认为的事情。 setScreen() 不操作任何堆栈。当您设置屏幕时,前一个屏幕刚刚被删除并从您添加的新屏幕中替换。

    假设您执行 setScreen(ScreenA),然后从 ScreenA 执行 setScreen(ScreenB) -> ScreenA 被移除并替换为 ScreenB。如果你想有一个堆栈,你可以自己做。通常我使用一个列表并将每个屏幕添加到顶部,当按下返回时,我从列表中弹出它,然后我 setScreen() 列表的最后一个屏幕。

    在 Keys.Back 或 Back 按钮上,您将具有相同的逻辑。

    通常你会想要使用这条线来用你的逻辑来操作后退键。

    Gdx.input.setCatchBackKey(true);
    

    【讨论】:

      【解决方案2】:

      LIBGDX 为您提供捕获返回按钮的方法,并且可以选择是否将其设置回屏幕,或者只是通过捕获它而不是设置屏幕来停止按下返回按钮。 这是一个很好的做法,因为如果用户误按了软键返回怎么办?你应该检查一下。 根据您的项目和用户友好性,在屏幕上提供后退按钮的另一种方法是您想要的。 没有一种方法是消耗内存的。它的应用程序的正常流程。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 2013-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多