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

140版本升级152版本原有表情包的位置显示是透明的 #185

Open
Lemniscate317 opened this issue Mar 10, 2023 · 3 comments
Open

Comments

@Lemniscate317
Copy link

  • Androidx版本:是
  • PanelSwitchHelper版本:v1.5.2
  • 手机型号: 红米k30pro
  • 手机系统版本: Android 12
  • 问题描述:原有的逻辑是点击emoj图片弹出表情框。升级152版本后,enableKeyboardAnimator默认为true,点击emoji图片弹出表情框的地方变为透明,能够看到底部的页面
  • Log提供:过滤 PanelSwitchLayout,提供异常场景下的 log 信息
2023-03-10 15:17:47.279 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.331 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#WindowInsetsListener => KeyBoardHeight : 957,isShow true
2023-03-10 15:17:47.331 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#KeyboardStateChanged => try to set KeyBoardHeight : 957,isShow true
2023-03-10 15:17:47.332 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#checkoutPanel => checkout success ! lastPanel's id : -1 , panel's id :0
2023-03-10 15:17:47.337 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#WindowInsetsListener => requestLayout
2023-03-10 15:17:47.339 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.341 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.349 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.365 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.384 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.399 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.416 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.432 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.449 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.466 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.484 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.500 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.517 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.533 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.550 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.567 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.583 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.601 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.617 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.633 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:47.650 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:49.784 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight by default panel  :611
2023-03-10 15:17:49.787 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight by default panel  :611
2023-03-10 15:17:49.787 7178-7178/me.wesdom.oa D/PanelSwitchLayout: updatePanelStateByAnimation: 611
2023-03-10 15:17:49.787 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight  :957
2023-03-10 15:17:49.788 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#checkoutPanel => checkout success ! lastPanel's id : 0 , panel's id :2131296829
2023-03-10 15:17:49.846 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#onLayout =>  getCompatPanelHeight by default panel  :611
2023-03-10 15:17:49.850 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#WindowInsetsListener => KeyBoardHeight : 0,isShow false
2023-03-10 15:17:49.850 7178-7178/me.wesdom.oa D/PanelSwitchLayout: trySyncKeyboardHeight: 0
2023-03-10 15:17:49.850 7178-7178/me.wesdom.oa D/LogTracker: PanelSwitchLayout#WindowInsetsListener => requestLayout

if (mHelper == null) {
            mHelper = new PanelSwitchHelper.Builder(this)
                    .addKeyboardStateListener(new OnKeyboardStateListener() {
                        @Override
                        public void onKeyboardChange(boolean b, int i) {
                            //可选实现,监听输入法变化
                        }
                    })
                    .addEditTextFocusChangeListener(new OnEditFocusChangeListener() {
                        @Override
                        public void onFocusChange(View view, boolean b) {
                            //可选实现,监听输入框焦点变化
                        }
                    })
                    .addViewClickListener(new OnViewClickListener() {
                        @Override
                        public void onClickBefore(View view) {
                            //可选实现,监听触发器的点击
                        }
                    })
                    .addPanelChangeListener(new OnPanelChangeListener() {
                        @Override
                        public void onKeyboard() {
                            //可选实现,输入法显示回调
                            ImageView ivEmotion = findViewById(R.id.iv_emotion);
                            if (ivEmotion != null) {
                                ivEmotion.setImageResource(R.drawable.selector_emotion);
                            }
                            View bottomLine = findViewById(R.id.view_bottom_line);
                            if (bottomLine != null) {
                                bottomLine.setVisibility(View.INVISIBLE);
                            }
                        }

                        @Override
                        public void onNone() {
                            //可选实现,默认状态回调
                            View etView = findViewById(R.id.comment_et);
                            if (etView != null) {
                                etView.setVisibility(View.INVISIBLE);
                            }
                        }

                        @Override
                        public void onPanel(IPanelView iPanelView) {
                            //可选实现,面板显示回调
                            ImageView ivEmotion = findViewById(R.id.iv_emotion);
                            if (ivEmotion != null) {
                                ivEmotion.setImageResource(R.drawable.selector_keyboard);
                            }
                            View bottomLine = findViewById(R.id.view_bottom_line);
                            if (bottomLine != null) {
                                bottomLine.setVisibility(View.VISIBLE);
                            }
                        }

                        @Override
                        public void onPanelSizeChange(IPanelView iPanelView, boolean b, int i, int i1, int i2, int i3) {
                            //可选实现,输入法动态调整时引起的面板高度变化动态回调
                        }
                    })
                    .addPanelHeightMeasurer(new PanelHeightMeasurer() {
                        ////可选 用于设置未获取输入法高度前面板的高度,如果不设置则默认以框架内高度为主
                        @Override
                        public boolean synchronizeKeyboardHeight() {
                            return false;
                        }

                        @Override
                        public int getTargetPanelDefaultHeight() {
                            return SizeUtils.dp2px(222);
                        }

                        @Override
                        public int getPanelTriggerId() {
                            //这个id要和layout里的id同步
                            return R.id.iv_emotion;
                        }
                    })
                    .logTrack(true)
                    .build(false);
        }
private void invokeLayout() {
        try {
            Field animationSpeed = mPanelSwitchLayout.getClass().getDeclaredField("animationSpeed");
            animationSpeed.setAccessible(true);
            animationSpeed.set(mPanelSwitchLayout, 50);
        } catch (NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }
@HeroZ-Dodge
Copy link
Collaborator

可以上传个截图看看吗,是不是键盘高度计算不准确导致这个问题。

@Lemniscate317
Copy link
Author

搜狗截图23年03月10日1653_1

@Lemniscate317
Copy link
Author

看log好像又没啥异常。可以看到原本emoj的地方变透明了。把那个enablexxx改为false就没事

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

2 participants