28

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

4

12 回答 12

31

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

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

或者

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

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

于 2013-09-27T11:42:44.067 回答
17

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

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

然后编辑 config.ini:

hw.mainKeys=yes
hw.keyboard=yes

两者都应设置为“是”

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

于 2016-11-13T02:31:57.297 回答
8

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

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

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

你可以在这里找到更多。

于 2013-09-27T11:43:32.090 回答
8
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。

于 2014-12-24T13:54:22.510 回答
6

除了上面的 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);
}
于 2016-02-23T17:53:20.227 回答
3

随着三星新的 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/

于 2013-09-27T11:45:52.853 回答
1

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

于 2014-01-10T19:17:12.143 回答
0

我认为这是可能的

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

于 2013-09-27T11:44:57.423 回答
0

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

于 2018-09-04T19:10:34.027 回答
0

对于 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
于 2021-07-21T11:03:21.740 回答
0

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

@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);}
}
于 2016-05-30T02:50:49.897 回答
0

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

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

在此处输入图像描述

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

于 2021-11-29T10:44:46.017 回答