夕辞

Android软键盘遮挡DialogFragment问题解决方案 | 夕辞夕辞

Android软键盘遮挡DialogFragment问题解决方案

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

 

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

 

2021年4月26日 / /
标签:  暂无标签
回到顶部