android-titlebar icon indicating copy to clipboard operation
android-titlebar copied to clipboard

在某些手机下且使用沉浸标题模式下,底部会有一个高度=状态栏高度的白条。

Open lcj0304 opened this issue 5 years ago • 3 comments

一、条件

1、沉浸模式下 2、 红米1s(miui8.5) 和oppo A37m(ColorOS3.0)Android5.1下 3、界面有ScrollView下内嵌有EditText。

Activity 设置:android:windowSoftInputMode="stateHidden|adjustResize" 已经调用 @Override public void onAttachedToWindow() { super.onAttachedToWindow(); KeyboardConflictCompat.assistWindow(getWindow()); }

二、现象

当进入界面时,界面底部出现白条,高度=状态栏高度

调试发现:

KeyboardConflictCompat.KeyboardConflictCompat() 方法里面 代码 contentHeight = mChildOfContent.getHeight();

假设手机 h=1280px。 在出问题的机型里面,contentHeight = h - statusHeight

没有出现白条的手机,contentHeight = h

我把代码改为: mChildOfContent.getRootView().getHeight(); 都正常。

原因可能某些机型ROM有问题。

我在小米2s(MIUI9.2) 及其它厂商手机上(测试了10手机左右),未见有此现象。

lcj0304 avatar Mar 14 '19 15:03 lcj0304

在华为荣耀7上,也会出现白条的情况

lcj0304 avatar Mar 14 '19 15:03 lcj0304

@lcj0304

mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            public void onGlobalLayout() {
                if (isfirst) {
                    contentHeight = mChildOfContent.getHeight();//兼容华为等机型
                    isfirst = false;
                }
                possiblyResizeChildOfContent();
            }
        });

改成

mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            public void onGlobalLayout() {
                if (isfirst) {
                    contentHeight = mChildOfContent.getRootView().getHeight();//兼容华为等机型
                    isfirst = false;
                }
                possiblyResizeChildOfContent();
            }
        });

之后OK了?

wuhenzhizao avatar Mar 07 '20 04:03 wuhenzhizao

一、条件

1、沉浸模式下 2、 红米1s(miui8.5) 和oppo A37m(ColorOS3.0)Android5.1下 3、界面有ScrollView下内嵌有EditText。

Activity 设置:android:windowSoftInputMode="stateHidden|adjustResize" 已经调用 @override public void onAttachedToWindow() { super.onAttachedToWindow(); KeyboardConflictCompat.assistWindow(getWindow()); }

二、现象

当进入界面时,界面底部出现白条,高度=状态栏高度

调试发现:

KeyboardConflictCompat.KeyboardConflictCompat() 方法里面 代码 contentHeight = mChildOfContent.getHeight();

假设手机 h=1280px。 在出问题的机型里面,contentHeight = h - statusHeight

没有出现白条的手机,contentHeight = h

我把代码改为: mChildOfContent.getRootView().getHeight(); 都正常。

原因可能某些机型ROM有问题。

我在小米2s(MIUI9.2) 及其它厂商手机上(测试了10手机左右),未见有此现象。 ========================================================================= 在mate10 pro, EMUI版本10.0.0,android版本10的机子上, 还是出现了会出现白条

kaka123888 avatar Jun 24 '20 03:06 kaka123888