我有两个问题:
我已经试过很多次了,还在为实现这一目标而奋斗,但却找不到解决办法。
我找到的解决方案清单,但它们没有满足我的要求。
请注意:
经过我的研究和你的回答,我得到了这样的结论:

但是我的应用程序应该是这样的,没有导航栏:

我不想在我的应用程序中看到系统导航栏。
发布于 2013-08-31 02:13:09
我不知道你在追求什么,但下面隐藏了通知栏和软导航键(如在Google设备上看到的那样),所以这个应用程序本质上是“全屏”。
Edit2
在Android4.4 (API 19)中,谷歌引入了新的沉浸式模式,它可以隐藏状态&导航栏,并允许真正的全屏用户界面。
// This snippet hides the system bars.
private void hideSystemUI() {
// Set the IMMERSIVE flag.
// Set the content to appear under the system bars so that the content
// doesn't resize when the system bars hide and show.
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 // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE);
}
// This snippet shows the system bars. It does this by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
mDecorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}参考资料:
https://developer.android.com/training/system-ui/immersive.html
编辑:
使用软Nav键在Android4.3 (API 18)和Android4.1 (API 16)上进行测试。
@Override
protected void onCreate(Bundle b) {
super.onCreate(b);
setContentView(R.layout.main);
int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
getWindow().getDecorView().setSystemUiVisibility(mUIFlag);
}有关http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)的更多信息,请阅读
发布于 2014-10-02 12:39:17
-To隐藏状态栏:
我为这个问题找到了一个很好的解决方案,将每个活动theme & windowSoftInputMode设置为以下值:
<activity android:name=".MyActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="adjustResize"> <!-- theme : to set the activity to a full screen mode without a status bar(like in some games) -->
</activity> <!-- windowSoftInputMode : to resize the activity so that it fits the condition of displaying a softkeyboard -->有关更多信息,请参阅这里。
-To隐藏通知栏:
有两种方式:
1-将您的设备根目录化,然后在adb window command中打开设备,然后运行以下命令:
adb shell >
su >
pm disable com.android.systemui >要使它返回,只需做同样的操作,但将disable更改为enable。
2-将以下行添加到设备的build.prop文件的末尾:
qemu.hw.mainkeys = 1那就把它拿回来就行了。
如果您不知道如何编辑build.prop文件:
发布于 2014-02-08 19:18:09
在新的Android4.4上,您应该添加以下一行:
View.SYSTEM_UI_FLAG_IMMERSIVE;因此,新的工作解决方案(至少在nexus4 4.4.2上)是
final int mUIFlag =
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE;身临其境不会工作,虽然它与其他标志结合工作。有关详细信息,请参阅文档。然后在活动中添加此设置的激活,如前面所示(我只是为了一致性而添加)。
getWindow().getDecorView().setSystemUiVisibility(mUIFlag);https://stackoverflow.com/questions/18512688
复制相似问题