PanelSwitchHelper
PanelSwitchHelper copied to clipboard
140版本升级152版本原有表情包的位置显示是透明的
- 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();
}
}
可以上传个截图看看吗,是不是键盘高度计算不准确导致这个问题。
看log好像又没啥异常。可以看到原本emoj的地方变透明了。把那个enablexxx改为false就没事