Merge branch 'fix/pad_display_issue' into 'dev'
fix: 低版本系统不支持新 API 导致获取不到软键盘高度的问题 https://jira.shanqu.cc/browse/GHZS-2639 See merge request halo/android/assistant-android!1107
This commit is contained in:
@ -308,9 +308,14 @@ open class NewCommentFragment : ListFragment<CommentEntity, NewCommentViewModel>
|
||||
commentContainer?.layoutParams = layoutParams
|
||||
}
|
||||
|
||||
// 判断是否处于平板的平行视界模式
|
||||
val configString = requireContext().resources.configuration.toString()
|
||||
val isMagicMode = configString.contains("magic-window") || configString.contains("window-magic")
|
||||
|
||||
// 平板上的导航方式改成按键时,使用 KeyboardHeightProvider 的 PopupWindow 会拦截掉所有的触摸事件
|
||||
// 换成在 Android 5.1 以后监听 WindowInsets 的实现
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
// 根据测试 Android 11 以前的系统用 WindowInsetsCompat.Type.ime()).bottom 获取不到正确的值
|
||||
// 所以仅在系统为大于 10 且处于平行视界模式时才切换实现
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && isMagicMode) {
|
||||
ViewCompat.setOnApplyWindowInsetsListener(requireActivity().window.decorView) { _: View?, insets: WindowInsetsCompat ->
|
||||
onKeyboardHeightChanged(insets.getInsets(WindowInsetsCompat.Type.ime()).bottom, 0)
|
||||
insets
|
||||
|
||||
Reference in New Issue
Block a user