And*_*Lie 13 android android-softkeyboard android-edittext android-statusbar android-immersive
最初我使用以下代码将我的Activity设置为沉浸模式:
View decorView = getWindow().getDecorView();
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);
Run Code Online (Sandbox Code Playgroud)
一切正常,直到用户点击EditText并出现软键盘.它会导致状态栏粘在顶部,即使在软键盘消失后也不会再次隐藏.奇怪的是,我只在LG /三星手机上遇到过这个问题,索尼手机对此没有任何问题.有人对此有任何想法吗?
像这样使用沉浸式模式.
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
immersiveMode();
getWindow().getDecorView().setOnSystemUiVisibilityChangeListener
(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
immersiveMode();
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是您的沉浸式模式功能.
public void immersiveMode() {
final View decorView = getWindow().getDecorView();
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);
}
Run Code Online (Sandbox Code Playgroud)
也可以在OnResume()中调用immersiveMode () ; 现在,当软键板消失时,状态栏将消失.
归档时间: |
|
查看次数: |
3783 次 |
最近记录: |