使用WindowInsetsCompat类设置软键盘的边距来解决该问题。
示例代码:
ViewCompat.setOnApplyWindowInsetsListener(editText, new OnApplyWindowInsetsListener() {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
int bottomInset = insets.getSystemWindowInsetBottom();
v.setPadding(v.getPaddingLeft(), v.getPaddingRight(), bottomInset, v.getPaddingBottom());
return insets;
}
});
在此代码示例中,我们通过ViewCompat类的setOnApplyWindowInsetsListener()方法设置了一个匿名OnApplyWindowInsetsListener对象来处理窗口插入。在onApplyWindowInsets()回调中,我们获取了软键盘的底部插入,然后使用View的setPadding()方法设置了View的底部填充。这样就可以让键盘不覆盖文本。