最近做需求遇到一个问题, 说是问题也可能不是,主要还是看需求吧。废话不多说,先抛出这个需求问题,做的东西是对某些素材的评论弹窗,类似抖音、头条这种,很多app也都有, 实现方案是使用了BottomSheetDialogFragment 去实现, 视图的高度是屏幕高度的80%,后来由于某些原因替换为DialogFragment,这时问题出现了,当我点击评论弹窗里的某条内容回复评论时,需要弹出输入法,这时这个输入法就会将我的整个评论弹窗顶起来(现象看起来是这样),实际是我不需要输入法将评论弹窗顶起来,这个测试肯定要提bug了。
有问题就要解决啊,首先想到是不是要配置 window.setSoftInputMode();、window.addFlags(); 查了一通资料,各种组合配置, 花了半天时间,竟没什么卵用,后面偶然翻到一篇文章关于不让DialogFragment让软键盘顶起,试了一下果然管用, 在DialogFragment的onCreate方法中做如下配置即可,看下代码:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
}
后记:
这个问题不是什么高难度的技术问题,也不是什么优雅的解决方案, 只作为一次跳坑记录,防止以后遇到类似问题再去查资料浪费很多时间。