问题描述
我有一个应用程序,大部分时间应该是全屏的。但是,我希望用户在使用键盘时能够轻松返回。如何使导航栏仅在键盘打开时可见?当键盘关闭时,导航栏应该会再次消失。
解决方法
我将此库添加到我的项目中。所以我可以输入键盘打开时要做什么:
implementation 'com.github.ravindu1024:android-keyboardlistener:1.0.0'
然后我创建了两个值,一个用于显示,一个用于隐藏:
private int showSystemBars() {
return SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
SYSTEM_UI_FLAG_LAYOUT_STABLE;
}
private int hideSystemBars() {
return SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
然后我使用了我添加的库:
KeyboardUtils.addKeyboardToggleListener(this,isVisible -> {
if (isVisible) {
Toast.makeText(context,"Visible",Toast.LENGTH_SHORT).show();
getWindow().getDecorView().setSystemUiVisibility(showSystemBars());
}else {
Toast.makeText(context,"Invisible",Toast.LENGTH_SHORT).show();
getWindow().getDecorView().setSystemUiVisibility(hideSystemBars());
}
});