在manifest文件中添加 android:windowSoftInputMode="adjustPan" 属性,同时在activity中调用 setSystemUiVisibility() 方法,将SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION与SYSTEM_UI_FLAG_HIDE_NAVIGATION这两个标记进行位运算。示例代码如下:
AndroidManifest.xml:
...
YourActivity.java:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 取消导航栏的激活状态
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// 判断是否为全屏模式
if ((getWindow().getDecorView().getSystemUiVisibility() &
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION) == 0) {
// 不是全屏模式,取消激活
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
} else {
// 是全屏模式,取消激活
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
...
}
注意:该方法只取消导航栏的激活状态,对于其他软输入模式的调整需要根据具体的需求进行设置。