Skip to content

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

@Papaddington

Description

@Papaddington

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 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions