Android 软键盘高度获取
概述
在Android开发中,有时候我们需要获取软键盘的高度,以便进行相应的布局调整。本文将介绍如何在Android中获取软键盘的高度。
Activity 代码
public class MainActivity extends AppCompatActivity {
private View rootView;
private LinearLayout rlView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rootView = findViewById(android.R.id.content);
// 注册键盘监听事件
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//获取软键盘的高度信息
int keyboardHeight = getKeyboardHeight();
rlView.setPadding(0,0,0,keyboardHeight);
}
});
}
//获取软键盘高度方法
private int getKeyboardHeight() {
View rootView = getWindow().getDecorView().getRootView();
Rect rect =new Rect();
rootView.getWindowVisibleDisplayFrame(rect);
int screenHeight = rootView.getHeight();
int keyboardHeight = screenHeight - rect.bottom;
return keyboardHeight;
}
}
xml代码需要已androidx.core.widget.NestedScrollView或者ScrollView包裹。