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文件是:

第二步:设置键盘适配模式:

@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;

}

怎么样,是不是很简单,其他很多方法都不行,我试了这个方法可以。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐