gpt4 book ai didi

Android隐藏导航栏导致按钮和手势一开始没有被拾取

转载 作者:行者123 更新时间:2023-11-30 02:21:18 27 4
gpt4 key购买 nike

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

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,滑动到其他选项卡或从操作栏中选择另一个选项卡也没有任何效果,直到我先点击屏幕上的某个地方。

显然,这种行为是不希望的。当用户打开应用程序并选择其中一个按钮时,他们希望按钮被点击。相反,他们必须点击按钮两次(然后一切正常)。

我正在 Samsung Galaxy S3(底部没有导航栏)和 Nexus 5(底部有导航栏)上进行测试。

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

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

最佳答案

SYSTEM_UI_FLAG_HIDE_NAVIGATION 专为观看视频和阅读书籍等被动 Activity 而设计。出于您的目的,沉浸式模式是更好的选择。 https://developer.android.com/training/system-ui/immersive.html

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

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

关于Android隐藏导航栏导致按钮和手势一开始没有被拾取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28508601/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com