PanelSwitchHelper icon indicating copy to clipboard operation
PanelSwitchHelper copied to clipboard

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

Open Lemniscate317 opened this issue 1 year ago • 3 comments

  • 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();
        }
    }

Lemniscate317 avatar Mar 10 '23 07:03 Lemniscate317

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

HeroZ-Dodge avatar Mar 10 '23 08:03 HeroZ-Dodge

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

Lemniscate317 avatar Mar 10 '23 08:03 Lemniscate317

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

Lemniscate317 avatar Mar 10 '23 08:03 Lemniscate317