我需要该应用程序不显示导航和状态栏。 How to hide navigation bar in Android app? 我使用了此解决方案,但是当我单击EditText时,导航和状态栏再次出现。
该怎么办才不会再来?
答案 0 :(得分:0)
您可以使用Fullscreen layout
就像在Android的启动画面中一样,隐藏导航和状态栏。
答案 1 :(得分:0)
尝试一下。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
// When the window loses focus (e.g. the action overflow is shown),
// cancel any pending hide action. When the window gains focus,
// hide the system UI.
if (hasFocus) {
delayedHide(300);
} else {
mHideHandler.removeMessages(0);
}
}
private void hideSystemUI() {
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_LOW_PROFILE |
View.SYSTEM_UI_FLAG_IMMERSIVE
);
}
private void showSystemUI() {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
}
private final Handler mHideHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
hideSystemUI();
}
};
private void delayedHide(int delayMillis) {
mHideHandler.removeMessages(0);
mHideHandler.sendEmptyMessageDelayed(0, delayMillis);
}
答案 2 :(得分:0)
使用onCreate
方法将其添加到您希望全屏显示的活动中。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
此外,将其添加到清单文件中的同一活动标签中:
android:theme="@style/Theme.AppCompat.NoActionBar"
例如
<activity
android:name=".Account.SplashActivity"
android:theme="@style/Theme.AppCompat.NoActionBar">
</activity>
答案 3 :(得分:0)
非常简单,您可以尝试这些简单的步骤来实现您想要的功能。但是我不知道您要删除哪种导航栏。
实际上,您可以在不显示状态栏的情况下实现全屏显示,这是解决方法:
//no status bar
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
答案 4 :(得分:0)
您只需添加:
android:name=".Account.SplashActivity"
android:theme="@style/Theme.AppCompat.NoActionBar">
</activity>
简单!
答案 5 :(得分:0)
在活动onCreate()
fun Activity.makeFullScreen() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.apply {
clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
} else {
decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
}
}
}