Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[兼容性缺陷]华为mate20Pro弹出键盘页面展示异常 #200

Open
Papaddington opened this issue Aug 24, 2023 · 2 comments
Open

[兼容性缺陷]华为mate20Pro弹出键盘页面展示异常 #200

Papaddington opened this issue Aug 24, 2023 · 2 comments

Comments

@Papaddington
Copy link

Androidx版本:是

PanelSwitchHelper版本:v1.5.4

手机型号: 华为mate20Pro

手机系统版本: HarmoneyOS 2.0.0

问题描述:华为mate20Pro弹出键盘页面会抖动,使用Demo能100%复现。

日志:

[正常状态点击输入框弹出键盘]

2023-08-24 18:05:10.626 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#checkoutPanel => checkout success ! lastPanel's id : -1 , panel's id :0
2023-08-24 18:05:10.638 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :823
2023-08-24 18:05:10.638 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getContentContainerTop  :-823
2023-08-24 18:05:10.640 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout => 界面每一次 layout 的信息回调 
                                                                                                    layoutInfo                                         = onLayout(changed : false , l : 0  , t : 75 , r : 1080 , b : 2265) 
                                                                                                    currentPanelState                                  = 显示键盘输入 
                                                                                                    isPad                                              = false 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isPortrait                                         = true 
                                                                                                    isNavigationShown                                  = false 
                                                                                                    screenH (static,include SystemUI)                  = 2340 
                                                                                                    screenH (static,exclude SystemUI)                  = 2265 
                                                                                                    screenH (dynamic,exclude SystemUI)                 = 2265 
                                                                                                    localLocation[y]                                   = 150 
                                                                                                    toolbarH                                           = 0 
                                                                                                    StatusBarH                                         = 75 
                                                                                                    NavigationBarH                                     = 120 
                                                                                                    layout Location                                    = (0,150) 
                                                                                                    paddingTop                                         = 0 
                                                                                                    keyboardH                                          = 823 
                                                                                                    ContentContainerTop                                = -823 
                                                                                                    ContentContainerH                                  = 2190 
                                                                                                    PanelContainerTop                                  = 1367 
                                                                                                    PanelContainerH                                    = 823 
                                                                                                    changeBounds                                       = true 
                                                                                                    reverseResetState                                  = true 
                                                                                                    contentContainer Layout                            = (0,-823,1080,1367) 
                                                                                                    panelContainer Layout                              = (0,1367,1080,2190) 
2023-08-24 18:05:10.643 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :823
2023-08-24 18:05:10.643 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getContentContainerTop  :-823
2023-08-24 18:05:10.643 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout => 界面每一次 layout 的信息回调 
                                                                                                    layoutInfo                                         = onLayout(changed : false , l : 0  , t : 75 , r : 1080 , b : 2265) 
                                                                                                    currentPanelState                                  = 显示键盘输入 
                                                                                                    isPad                                              = false 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isPortrait                                         = true 
                                                                                                    isNavigationShown                                  = false 
                                                                                                    screenH (static,include SystemUI)                  = 2340 
                                                                                                    screenH (static,exclude SystemUI)                  = 2265 
                                                                                                    screenH (dynamic,exclude SystemUI)                 = 2265 
                                                                                                    localLocation[y]                                   = 150 
                                                                                                    toolbarH                                           = 0 
                                                                                                    StatusBarH                                         = 75 
                                                                                                    NavigationBarH                                     = 120 
                                                                                                    layout Location                                    = (0,150) 
                                                                                                    paddingTop                                         = 0 
                                                                                                    keyboardH                                          = 823 
                                                                                                    ContentContainerTop                                = -823 
                                                                                                    ContentContainerH                                  = 2190 
                                                                                                    PanelContainerTop                                  = 1367 
                                                                                                    PanelContainerH                                    = 823 
                                                                                                    changeBounds                                       = false 
                                                                                                    contentContainer Layout                            = (0,-823,1080,1367) 
                                                                                                    panelContainer Layout                              = (0,1367,1080,2190) 
2023-08-24 18:05:10.644 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onGlobalLayout => 界面每一次变化的信息回调 
                                                                                                    windowSoftInputMode                                = 19 
                                                                                                    currentPanelSwitchLayoutVisible                    = true 
                                                                                                    screenHeight                                       = 2340 
                                                                                                    contentHeight                                      = 2265 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isNavigationBarShown                               = false 
                                                                                                    deviceStatusBarH                                   = 75 
                                                                                                    deviceNavigationBarH                               = 120 
                                                                                                    systemInset                                        = left(0) top(0) right(0) bottom(0) 
                                                                                                    inset                                              = left(0) top(0) right(0) bottom(0) 
                                                                                                    currentSystemInfo                                  = statusBarH : 75, navigationBarH : 0 全面屏手势虚拟栏H : 0 
                                                                                                    currentSystemH                                     = 75 
                                                                                                    minLimitCloseKeyboardH                             = 120 
                                                                                                    minLimitOpenKeyboardH                              = 300 
                                                                                                    lastKeyboardH                                      = 0 
                                                                                                    currentKeyboardInfo                                = keyboardH : 0, realKeyboardH : 0, isShown : false 
2023-08-24 18:05:10.695 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#KeyboardStateChanged => try to set KeyBoardHeight : 823,isShow true
2023-08-24 18:05:10.695 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onGlobalLayout => 界面每一次变化的信息回调 
                                                                                                    windowSoftInputMode                                = 19 
                                                                                                    currentPanelSwitchLayoutVisible                    = true 
                                                                                                    screenHeight                                       = 2340 
                                                                                                    contentHeight                                      = 1442 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isNavigationBarShown                               = false 
                                                                                                    deviceStatusBarH                                   = 75 
                                                                                                    deviceNavigationBarH                               = 120 
                                                                                                    systemInset                                        = left(0) top(0) right(0) bottom(0) 
                                                                                                    inset                                              = left(0) top(0) right(0) bottom(0) 
                                                                                                    currentSystemInfo                                  = statusBarH : 75, navigationBarH : 0 全面屏手势虚拟栏H : 0 
                                                                                                    currentSystemH                                     = 75 
                                                                                                    minLimitCloseKeyboardH                             = 120 
                                                                                                    minLimitOpenKeyboardH                              = 300 
                                                                                                    lastKeyboardH                                      = 0 
                                                                                                    currentKeyboardInfo                                = keyboardH : 823, realKeyboardH : 823, isShown : false 
2023-08-24 18:05:10.712 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onGlobalLayout => 界面每一次变化的信息回调 
                                                                                                    windowSoftInputMode                                = 19 
                                                                                                    currentPanelSwitchLayoutVisible                    = true 
                                                                                                    screenHeight                                       = 2340 
                                                                                                    contentHeight                                      = 1442 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isNavigationBarShown                               = false 
                                                                                                    deviceStatusBarH                                   = 75 
                                                                                                    deviceNavigationBarH                               = 120 
                                                                                                    systemInset                                        = left(0) top(0) right(0) bottom(0) 
                                                                                                    inset                                              = left(0) top(0) right(0) bottom(0) 
                                                                                                    currentSystemInfo                                  = statusBarH : 75, navigationBarH : 0 全面屏手势虚拟栏H : 0 
                                                                                                    currentSystemH                                     = 75 
                                                                                                    minLimitCloseKeyboardH                             = 120 
                                                                                                    minLimitOpenKeyboardH                              = 300 
                                                                                                    lastKeyboardH                                      = 823 
                                                                                                    currentKeyboardInfo                                = keyboardH : 823, realKeyboardH : 823, isShown : true 
2023-08-24 18:05:10.857 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :823
2023-08-24 18:05:10.857 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getContentContainerTop  :-823
2023-08-24 18:05:10.858 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout => 界面每一次 layout 的信息回调 
                                                                                                    layoutInfo                                         = onLayout(changed : false , l : 0  , t : 75 , r : 1080 , b : 2265) 
                                                                                                    currentPanelState                                  = 显示键盘输入 
                                                                                                    isPad                                              = false 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isPortrait                                         = true 
                                                                                                    isNavigationShown                                  = false 
                                                                                                    screenH (static,include SystemUI)                  = 2340 
                                                                                                    screenH (static,exclude SystemUI)                  = 2265 
                                                                                                    screenH (dynamic,exclude SystemUI)                 = 1442 
                                                                                                    localLocation[y]                                   = -448 
                                                                                                    toolbarH                                           = 0 
                                                                                                    StatusBarH                                         = 75 
                                                                                                    NavigationBarH                                     = 120 
                                                                                                    layout Location                                    = (0,-448) 
                                                                                                    paddingTop                                         = 0 
                                                                                                    keyboardH                                          = 823 
                                                                                                    ContentContainerTop                                = -823 
                                                                                                    ContentContainerH                                  = 2788 
                                                                                                    PanelContainerTop                                  = 1965 
                                                                                                    PanelContainerH                                    = 823 
                                                                                                    changeBounds                                       = true 
                                                                                                    reverseResetState                                  = true 
                                                                                                    contentContainer Layout                            = (0,-823,1080,1965) 
                                                                                                    panelContainer Layout                              = (0,1965,1080,2788) 
2023-08-24 18:05:10.860 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :823
2023-08-24 18:05:10.860 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout =>  getContentContainerTop  :-823
2023-08-24 18:05:10.861 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onLayout => 界面每一次 layout 的信息回调 
                                                                                                    layoutInfo                                         = onLayout(changed : false , l : 0  , t : 75 , r : 1080 , b : 2265) 
                                                                                                    currentPanelState                                  = 显示键盘输入 
                                                                                                    isPad                                              = false 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isPortrait                                         = true 
                                                                                                    isNavigationShown                                  = false 
                                                                                                    screenH (static,include SystemUI)                  = 2340 
                                                                                                    screenH (static,exclude SystemUI)                  = 2265 
                                                                                                    screenH (dynamic,exclude SystemUI)                 = 1442 
                                                                                                    localLocation[y]                                   = -448 
                                                                                                    toolbarH                                           = 0 
                                                                                                    StatusBarH                                         = 75 
                                                                                                    NavigationBarH                                     = 120 
                                                                                                    layout Location                                    = (0,-448) 
                                                                                                    paddingTop                                         = 0 
                                                                                                    keyboardH                                          = 823 
                                                                                                    ContentContainerTop                                = -823 
                                                                                                    ContentContainerH                                  = 2788 
                                                                                                    PanelContainerTop                                  = 1965 
                                                                                                    PanelContainerH                                    = 823 
                                                                                                    changeBounds                                       = false 
                                                                                                    contentContainer Layout                            = (0,-823,1080,1965) 
                                                                                                    panelContainer Layout                              = (0,1965,1080,2788) 
2023-08-24 18:05:10.862 24668-24668 LogTracker              com.example.demo                     D  PanelSwitchLayout#onGlobalLayout => 界面每一次变化的信息回调 
                                                                                                    windowSoftInputMode                                = 19 
                                                                                                    currentPanelSwitchLayoutVisible                    = true 
                                                                                                    screenHeight                                       = 2340 
                                                                                                    contentHeight                                      = 1442 
                                                                                                    isFullScreen                                       = false 
                                                                                                    isNavigationBarShown                               = false 
                                                                                                    deviceStatusBarH                                   = 75 
                                                                                                    deviceNavigationBarH                               = 120 
                                                                                                    systemInset                                        = left(0) top(0) right(0) bottom(0) 
                                                                                                    inset                                              = left(0) top(0) right(0) bottom(0) 
                                                                                                    currentSystemInfo                                  = statusBarH : 75, navigationBarH : 0 全面屏手势虚拟栏H : 0 
                                                                                                    currentSystemH                                     = 75 
                                                                                                    minLimitCloseKeyboardH                             = 120 
                                                                                                    minLimitOpenKeyboardH                              = 300 
                                                                                                    lastKeyboardH                                      = 823 
                                                                                                    currentKeyboardInfo                                = keyboardH : 823, realKeyboardH : 823, isShown : true 

Papaddington added a commit to Papaddington/PanelSwitchHelper that referenced this issue Aug 24, 2023
@Papaddington
Copy link
Author

复现录像见 复现录像

@Papaddington
Copy link
Author

发现mate20及mate20 pro手机上,adjustResize被特殊处理成了和adjustPan一样,会将decorView整体上移。(⊙o⊙)…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant