繁体   English   中英

如何删除底部屏幕上的按钮栏

[英]How to remove button bar at the bottom screen

我正在构建自定义图像。我正在浏览 android 源代码,我想摆脱 android 中的底部软键按钮栏,有人可以指导我更改源文件吗?在此处输入图像描述

要启用/禁用它们,据我所知,您只需编辑 build.prop:

qemu.hw.mainkeys=0 (show on screen buttons)

或者

qemu.hw.mainkeys=1 (disable on screen buttons)

如果您的 build.prop 中不存在该行,请将其添加到底部。

在没有底部导航栏的情况下进行屏幕截图的最简单方法是使用模拟器 (AVD) 并编辑其配置文件。

转到 .android/avd/virtual-device.avd

然后编辑 config.ini:

hw.mainKeys=yes
hw.keyboard=yes

两者都应设置为“是”

为了能够再次看到该栏,请将它们设置回“否”。

但是,您不能永久隐藏它:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

此代码隐藏软键,直到用户与您的应用交互。 这是有意设计的,试想一下,您没有提供任何退出当前屏幕并隐藏这些键的方法,用户将被“困”在单向死胡同中。

你可以在这里找到更多。

getWindow().getDecorView().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
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 

在 onCreate 中使用此代码。 但这需要 api lv 超过 19。

除了上面 Aykut Burak SAFAK 的回答之外,您可以将他的代码放在onWindowFocusChanged事件中,以确保无论何时Activity获得焦点(例如解锁后),它都保持全屏状态而没有软键状态。

@Override
public void onWindowFocusChanged(boolean hasFocus){
    super.onWindowFocusChanged(hasFocus);
    getWindow().getDecorView().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
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}

随着三星新的 SureLock 的推出,底部栏可以在不生根设备的情况下被禁用或隐藏。 您所要做的就是安装 SureLock Lockdown for Samsung 并按照以下站点中提到的程序进行操作,

http://www.42gears.com/blog/2013/07/disablehide-android-bottom-bar-without-rooting-samsung-galaxy-tablets/

查看以下链接。它可以帮助您理解它。

http://www.42gears.com/blog/2012/02/disable-bottom-bar-in-android-honeycomb-tablets-with-surelock/

如果您只想让导航栏(按钮栏)不那么分散注意力,请尝试youractivity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)

我认为这是可能的

隐藏软键尝试getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 但它不适用于平板电脑 4+。

是的,您可以在您的活动中使用它:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.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
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}

如果我隐藏导航栏,有没有办法将控件拉伸到屏幕底部? 我有一个高度设置为 match_parent 的 ImageView,但缺少的导航栏留下了一个黑色矩形。

对于 30 级

window.decorView.windowInsetsController?.hide(android.view.WindowInsets.Type.statusBars())

30以下

window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN

只需在 config.ini 文件中将 hw.mainKeys 更改为 yes。

1- 打开 config.ini 文件(要在系统中查找文件,请按照以下步骤操作)。

在此处输入图像描述

2-不要忘记重新启动您的模拟器。

对于 API 32 android studio 模拟器,您可以将“手势导航”更改为“3 按钮导航”或“2 按钮导航”,因为它有时会出现滚动抽屉布局的问题

设置 -> 系统 -> 手势 -> 系统导航在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM