什么是不断减少我的应用程序的神秘的“触摸保持”最佳位置,我可以禁用它吗?

问题描述 投票:0回答:1

我已经用Java开发了适用于Android的游戏引擎,它旨在创建二维平台游戏。响应于用户在屏幕的左右边界垂直延伸的两个不可见的“带”之一中,用户触摸并握住手指,主角色向左或向右移动。该游戏可以在纵向和横向视图下工作,并且不可见带的位置也会相应更新。

初始化期间,我对SurfaceView对象执行以下操作:

// Set the content to appear full screen, and to allow the navigation bars
// to be pulled up from offscreen with a swipe action at the screen's edge.
a_GameView.setSystemUiVisibility(
   View.SYSTEM_UI_FLAG_LAYOUT_STABLE
 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION        // hide nav bar
 | View.SYSTEM_UI_FLAG_FULLSCREEN             // hide status bar
 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
   );

在肖像模式下,它像梦一样发挥。在横向视图中播放时会出现问题。假设我已将手机顺时针旋转90度-现在,以前在屏幕顶部的位置是我的右手边的区域,而过去在屏幕底部的位置是我的左手边的位置。角色向左移动的时间约为99%,但是如果您将手指按在一个最佳位置(如果我的应用程序没有隐藏它,则恰好是主页按钮所在的位置),您会收到不希望的反应。手机非常轻微地振动一次,该应用程序继续运行,但是一旦松开,就会产生第二声轻微振动,并且该应用程序最小化,从而使您回到主屏幕。

这似乎与点击主页按钮并不相同,因为这仅在您按住时才会发生。不能通过快速点击最有效点来引起。

我的问题是:任何人都可以向我解释Android OS的哪种机制控制这种反应,并且我有可能禁用just that机制吗?

显然,我希望用户能够随时退出该应用程序,但我要强制他们必须向上滑动才能“拉起”导航栏才能退出。我不希望存在这个可触及的最佳位置,因为我不希望用户在尝试移动其角色时不小心将游戏最小化。

非常感谢任何见识,谢谢!

编辑:自发布以来,我已经确认在LG G5上不会发生这种情况。这仅发生在我一直用于开发的Samsung Galaxy S8 +上,因此它似乎对于特定的Android风格而言是唯一的。

android android-activity surfaceview
1个回答
0
投票

经过更多研究,我终于找到了答案。神秘的甜蜜点是三星Galaxy S8 +中“硬按主屏幕按钮”功能的结果。可以在以下位置禁用它:设置->显示->导航栏。

© www.soinside.com 2019 - 2024. All rights reserved.