Android:当试图用视图替换键盘时,如何防止视图跳转/闪烁
我把键盘藏起来了。如果我立即使我的视图可见,则在键盘上方会有一个视图的闪光,然后它会下降到键盘的位置 如果我等待键盘隐藏/显示并调整我的布局(全局布局的大小已更改),然后尝试使我的视图可见,在许多情况下,系统不会正确地重新估计我的布局(可能是因为我在布局更改生命周期的某个奇怪部分使视图可见?) 所以在很多情况下,我最终没有显示任何视图。有时,在视图的位置上,键盘上方有一个奇怪的空间,应该隐藏起来。如果我执行post(Runnable),然后调用requestLayout(),或者让视图在下一帧中可见,这是不好的,因为闪烁当然又出现了 因此,基本上我想知道键盘调整视图大小的确切帧,这样我可以使它们可见/不可见,并防止不同视图结构/大小的闪烁。如果我等待onSizeChanged,似乎为时已晚Android:当试图用视图替换键盘时,如何防止视图跳转/闪烁,android,keyboard,Android,Keyboard,我把键盘藏起来了。如果我立即使我的视图可见,则在键盘上方会有一个视图的闪光,然后它会下降到键盘的位置 如果我等待键盘隐藏/显示并调整我的布局(全局布局的大小已更改),然后尝试使我的视图可见,在许多情况下,系统不会正确地重新估计我的布局(可能是因为我在布局更改生命周期的某个奇怪部分使视图可见?) 所以在很多情况下,我最终没有显示任何视图。有时,在视图的位置上,键盘上方有一个奇怪的空间,应该隐藏起来。如果我执行post(Runnable),然后调用requestLayout(),或者让视图在下一帧中
我真的希望系统能够正确运行,重新估计视图大小并将其放置在正确的位置,但如果在onSizeChanged中执行此操作,则无法正常工作。我最终执行了以下操作:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (resizingEnabled) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
} else {
setMeasuredDimension(getWidth(), getHeight());
}
}