关于Android中adjustResize属性不生效的问题

前言

写聊天布局的时候需要给Activity用上adjustResize属性来保证输入框不会被软键盘遮盖住

如果该属性不生效, 那么一般情况是没有给布局添加fitsSystemWindows属性, 那么给布局根控件添加该属性即可:

1
android:fitsSystemWindows="true"

此时adjustResize属性生效, 但是新问题又出现了, 布局上方出现了一块间隔区域

image-20211122135418218

解决方案

重写根控件的onApplyWindowInsets方法, 如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
class ChatLayout @JvmOverloads constructor(

context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr) {

override fun onApplyWindowInsets(insets: WindowInsets): WindowInsets {
return super.onApplyWindowInsets(insets.replaceSystemWindowInsets(0, 0, 0,
insets.systemWindowInsetBottom
));
}
}

问题解决

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%