为Dialog创建一个基类,当Dialog获取到焦点的时候,主要也就是应对从后台回到前台的时候。如果发现Dialog的DecorView宽或者高为0,就去请求布局。这样问题就暂时解决了。(已解决: 手机型号:vivoX20 版本:android9)
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Window window = getWindow();
if (hasFocus && window != null) {
View decorView = window.getDecorView();
if (decorView.getHeight() == 0 || decorView.getWidth() == 0) {
decorView.requestLayout();
Log.d(TAG, "布局异常,重新布局");
}
}
}
————————————————
网友评论