[兼容性缺陷]华为mate20Pro弹出键盘页面展示异常
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
Research direction
Start by reproducing the keyboard-opening behavior in the Demo on a Huawei Mate20 Pro running HarmonyOS 2.0.0 with PanelSwitchHelper v1.5.4, then inspect the reported layout and keyboard-state logs. Done means the page no longer jitters when the keyboard appears on this device while existing behavior remains intact.
Written by the indexing model from the issue text.
Description
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
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 288
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from DSAppTeam/PanelSwitchHelper
-
Difficulty 3/5 1-2 days Newbie friendliness 42/100
DSAppTeam/PanelSwitchHelper#231 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 48/100
DSAppTeam/PanelSwitchHelper#230 ·
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
DSAppTeam/PanelSwitchHelper#226 ·
-
android15的适配问题Open
Difficulty 3/5 1-2 days Newbie friendliness 38/100
DSAppTeam/PanelSwitchHelper#222 · 8 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
DSAppTeam/PanelSwitchHelper#221 · 5 comments ·
All issues in DSAppTeam/PanelSwitchHelper
Similar issues
-
Update license yearOpen0 - Backlog 1 - Ready documentation good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
cbor
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
FasterXML/jackson-dataformats-binary#844 ·
Maintainers usually reply within 1 day
-
Issue: Bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
OpenAPITools/openapi-generator#25107 ·
Maintainers usually reply within 1 day
-
improvement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/iceberg#18351 · 1 comment ·
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
repowise-dev/repowise#2945 · 1 comment ·
Maintainers usually reply within 1 day