Android中不让软键盘顶起DialogFragment弹窗

最近做需求遇到一个问题, 说是问题也可能不是,主要还是看需求吧。废话不多说,先抛出这个需求问题,做的东西是对某些素材的评论弹窗,类似抖音、头条这种,很多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);
}

后记:

​ 这个问题不是什么高难度的技术问题,也不是什么优雅的解决方案, 只作为一次跳坑记录,防止以后遇到类似问题再去查资料浪费很多时间。

posted @ 2020-07-08 11:14  往亊如風  阅读(5605)  评论(1编辑  收藏  举报