DialogFragment
是开发中常用的对话框组件,有时候我们为了实现好看的对话框会自定义,比如展示在底部,最近遇到一个问题是展示在底部的DialogFragment
,当软键盘弹出后,就遮挡住了,我其实是希望软键盘网上顶的,这里分享下解决办法。
第一步:onCreate
方法更改。
@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //关键在这一句,这个style可以随便定义 setStyle(DialogFragment.STYLE_NO_FRAME, R.style.your_style); }
比如我的your_style文件是:
<style name="your_style" parent="@android:style/Theme.Dialog"></style>
第二步:设置键盘适配模式:
@Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //你的业务代码 //... //下一步是重点 Window window = getDialog().getWindow(); window.setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING); return view; }
怎么样,是不是很简单,其他很多方法都不行,我试了这个方法可以。