我最近在做我的全屏项目,它是通过Immersive mode实现的。除了一部分之外,它可以正常工作:
当键盘弹出时,隐藏状态栏也会出现。
我怎样才能摆脱它?当我单击布局中的 edittext 时,我希望状态栏保持隐藏。
这是我的代码:
int flag = View.SYSTEM_UI_FLAG_LOW_PROFILE
|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|View.SYSTEM_UI_FLAG_FULLSCREEN
|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDecorView = activity.getWindow().getDecorView();
mDecorView.setSystemUiVisibility(flag);
mDecorView.setOnSystemUiVisibilityChangeListener(
new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0) {
mDecorView.setSystemUiVisibility(flag);
}
}
});
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if ((visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) != 0) {
mDecorView.setSystemUiVisibility(flag);
}
}
Run Code Online (Sandbox Code Playgroud)
它必须有一些绕行解决方案。我已经看到一些应用程序即使在键盘弹出时也能很好地隐藏状态栏。
任何想法如何解决这个问题?