Rob*_*ski 20 android tablet android-4.0-ice-cream-sandwich
我想扩展有关在Android Ice Cream Sandwich(4.0及更高版本)平板电脑设备上屏幕底部隐藏系统/导航栏的讨论.
已经有一个线程(有没有办法隐藏Android 3.0中的系统栏?这是一个内部设备,我正在管理导航)关于隐藏Honeycomb设备上的栏.然而,我的客户将使用最新的冰淇淋三明治设备,并且非常热衷于隐藏屏幕底部的条形图.他们的应用程序不适合普通消费者使用,他们接管整个屏幕以提供他们的体验非常重要.如何在没有设备生根或重写固件的情况下隐藏此栏 - 或者至少覆盖所有按钮的行为?
小智 24
签出后SYSTEM_UI_FLAG_HIDE_NAVIGATION,此标志会隐藏导航栏,直到用户与设备进行交互.它是在Android 4.0中引入的.您可以启用此标志,例如:
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)
请注意,导航不会自动再次消失,您必须在用户与设备交互后每次设置.
或者,您可以通过使用使导航不那么突兀SYSTEM_UI_FLAG_LOW_PROFILE,这会将按钮更改为小点(例如,像相机应用程序).
小智 12
在root设备上,我使用以下adb命令
adb shell pm disable com.android.systemui
Run Code Online (Sandbox Code Playgroud)
永久隐藏导航栏.要再次显示,请运行
adb shell pm enable com.android.systemui
Run Code Online (Sandbox Code Playgroud)
到目前为止它对我来说很好
使用下面的代码是一种隐藏导航的方法
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)
但是上面的问题是,一旦用户触摸屏幕,它就会变得可见。
在 Android Kitkat 中有一个称为 as 的功能,IMMERSIVE它隐藏了通知栏和导航。即使用户与屏幕交互,它也不会显示。但是,用户可以通过从屏幕顶部向底部滑动来使其可见。下面是实现它的代码
//Initializew this in onCreate()
View mDecorView = getWindow().getDecorView();
//Then call this function
private void hideSystemUI() {
mDecorView.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_LOW_PROFILE
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
Run Code Online (Sandbox Code Playgroud)
但是,就我而言,即使用户从屏幕顶部滑动到底部,我也不希望导航和通知栏可见。我试了一下,我能够部分实现它。我所做的是实现了一个每隔一秒左右CountDownTimer就会调用hideSystemUI()一次的方法。我知道这不是最好的方法。但我没有得到任何其他解决方案来做到这一点。
如果有人收到任何信息,请告诉我如何永久隐藏导航和通知栏 :) 希望这个答案对未来有所帮助 :)
观看此视频以更好地了解此功能。
| 归档时间: |
|
| 查看次数: |
63906 次 |
| 最近记录: |