首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android隐藏导航栏会导致按钮和手势一开始无法识别

问Android隐藏导航栏会导致按钮和手势一开始无法识别
EN

Stack Overflow用户
提问于 2015-02-14 04:57:06
回答 1查看 2.2K关注 0票数 1

我最近在我的应用程序中添加了以下代码,以删除某些手机上的导航栏(软按钮)。这导致我的应用程序出现了一些调整大小的问题,因此摆脱导航栏是理想的。

代码语言:javascript
复制
getWindow().requestFeature(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

更多信息请访问:https://developer.android.com/training/system-ui/navigation.html

这就是我想要的。软按钮不再出现在Nexus 5等设备上。但是,这会导致禁用和触摸或手势的副作用,直到至少出现一个触摸事件。例如,我在主屏幕上有一些按钮。使用上面的代码,第一次点击按钮不会做任何事情。从第二次开始,应用程序就会正常运行。我的应用程序也使用viewpager,滑动到其他标签或从操作栏中选择另一个标签也没有效果,直到我先点击屏幕上的某个地方。

显然,这种行为是不受欢迎的。当用户打开应用程序并选择其中一个按钮时,他们希望该按钮被单击。取而代之的是,他们必须轻敲两次按钮(然后一切都会正常工作)。

我在三星Galaxy S3 (底部没有导航栏)和Nexus5(底部有导航栏)上测试了这一点。

编辑:进一步研究-隐藏导航栏只是暂时的。导航栏请求第一个触摸事件的焦点,因为导航栏的目的是在出现任何类型的ui事件时立即弹出。因此,即使是在一开始就没有导航栏的Galaxy S3上,触摸事件也会被导航栏吸收。对于确实有导航栏的设备,导航栏将在每次交互时重新出现,您必须告诉设备再次隐藏它。据我所知,没有办法永久隐藏导航栏。

我的下一个问题是了解如何查询设备以查看是否有导航栏。如果我知道设备没有导航栏,那么就没有必要试图隐藏导航栏,让操作系统吸收第一次触摸事件。

EN

回答 1

Stack Overflow用户

发布于 2015-02-14 06:38:30

SYSTEM_UI_FLAG_HIDE_NAVIGATION是为被动的活动而设计的,比如看视频或者看书。出于您的目的,沉浸式模式是更好的选择。https://developer.android.com/training/system-ui/immersive.html

更具体地说,您可能希望将SYSTEM_UI_FLAG_IMMERSIVE_STICKY标志与SYSTEM_UI_FLAG_HIDE_NAVIGATION一起添加,这样导航栏将被隐藏,并且将保持隐藏状态,直到用户从顶部或底部滑动。

请注意,当用户第一次在您的应用程序中进入此模式时,将出现一个“提醒气泡”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28508601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档