我正在构建自定义图像。我正在浏览 android 源代码,我想摆脱 android 中的底部软键按钮栏,有人可以指导我更改源文件吗?
12 回答
要启用/禁用它们,据我所知,您只需编辑 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/2012/02/disable-bottom-bar-in-android-honeycomb-tablets-with-surelock/
如果您只想让导航栏(按钮栏)不那么分散注意力,请尝试youractivity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE)
我认为这是可能的
隐藏软键 TrygetWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
但它不适用于平板电脑 4+。
如果我隐藏导航栏,有没有办法将控件拉伸到屏幕底部?我有一个高度设置为 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
是的,您可以在您的活动中使用它:
@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);}
}