首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DialogFragment自动弹出软键盘,消失时关闭软键盘

hideSoftInputFromWindow(binding.etChat.windowToken, 0) } 复制代码 在DialogFragment显示时弹出软键盘 在DialogFragment...消失时关闭软键盘 dialog关闭分为几种情况,处理方式不一样: 1.用户手动调用DialogFragment.dismiss() 这时可以重写dismiss方法,在调用之前关闭软键盘。...DialogFragment本身没有监听关闭之前的方法,只有两个相关方法onCancel(dialog: DialogInterface)和onDismiss(dialog: DialogInterface...自定义Dialog在dismiss之前通知 DialogFragment 关闭软键盘 转变思路,既然在 DialogFragment 中无法提前监听dialog关闭,那就自定义Dialog重写dismiss...方法,在Dialog关闭之前告知 DialogFragment 关闭软键盘 class EditDialog(context: Context?

5.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DialogFragment踩坑记

    DialogFragment有两个不同的包名 androidx.fragment.app.DialogFragment android.app.DialogFragment 为了兼容各个Android...需要注意规避 不保留活动 这是一个不得不考虑的场景,实际情况下,发生了不保留活动,业务这边的逻辑一般是重置了,所以也是不需要再展示dialog,不过发生不保留,系统会自动重新展示dialog,这个时候,需要手动关闭...= null) { //处理不保留活动下的场景,这个时候,返回会重新展示,改成主动关闭,不展示 dismissAllowingStateLoss...建议展示Dialog的地方,统一使用DialogFragment,更好的处理生命周期的各种场景,而且在Fragment回收后,也可以自动帮我们关闭Dialog,避免逻辑异常 public void onDestroyView...= null) { mViewDestroyed = true; //fragment销毁后,会自动关闭dialog

    2.1K30

    Android 撸起袖子,自己封装 DialogFragment

    本文的主要内容 DialogFragment 是什么 创建通用的 CommonDialogFragment 实现各种类型的 DialogFragment 在写正文之前,先来一波效果展示吧 ?...DialogFragmentDemos.gif 一、DialogFragment 是什么 DialogFragment 在 Android 3.0 时被引入,是一种特殊的 Fragment,用于在 Activity...1、DialogFragment 的优点 其实在 Android 中显示对话框有两种类型可供使用,一种是 DialogFragment,而另一种则是 Dialog。...,是不是感觉很奇怪,其实原因也很简单, DialogFragment 有着 Dialog 所没有的非常好的特性 DialogFragment 本身是 Fragment 的子类,有着和 Fragment...这个类是 DialogFragment 的子类,对 DialogFragment 进行封装,依赖外部传入的 AlertDialog 来构建,同时也处理了 DialogFragment 中 AlertDialog

    1.3K41

    Android 必知必会 - DialogFragment 实现类似 PopupWindow 效果

    使用总结 做一些业务,但是目标却是用 DialogFragment 实现类似 PopupWindow 效果: 只拦截自身所占空间部分的事件,其余空间的点击事件不处理 可以根据某个 View 定位自身位置...虽然在功能上 PopupWindow 更符合需要,但是使用 DialogFragment 代码更简洁、更方便封装功能模块。...获取 View 位置的时机 如果需要让 DialogFragment 在 onCreate() 等生命周期函数内直接调用显示到某个 View 的位置处,可能无法正确获取到该 View 的坐标,具体参考...但是,如果在界面显示给用户后,DialogFragment 的显示交给用户触发的话,就不需要在意这个问题了。...代码实现 TopFragment.java public class TopFragment extends DialogFragment { private static final

    1.7K20

    android推荐使用dialogFrament而不是alertDialog

    上面会通过例子展示这些好处~ 使用DialogFragment至少需要实现onCreateView或者onCreateDIalog方法。...,重写onCreateView方法 package com.example.zhy_dialogfragment;   import android.app.DialogFragment;   import...当用户输入帐号密码时,忽然旋转了一下屏幕,帐号密码不见了~~~是不是会抓狂 传统的new AlertDialog在屏幕旋转时,第一不会保存用户输入的值,第二还会报异常,因为Activity销毁前不允许对话框未关闭...而通过DialogFragment实现的对话框则可以完全不必考虑旋转的问题。...可以看到,传统的Dialog旋转屏幕时就消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment的介绍结束~~~~ 源码点击下载

    2.4K50

    Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

    b)关闭ProgressDialog的代码在线程的onPostExecutez中,但是上个线程如果已经杀死,无法关闭之前ProgressDialog。...c)谷歌的官方不建议使用ProgressDialog,这里我们会使用官方推荐的DialogFragment来创建我的加载框,如果你不了解:请看 Android 官方推荐 : DialogFragment...这样,其实给我们带来一个很大的问题,DialogFragment说白了是Fragment,和当前的Activity的生命周期会发生绑定,我们旋转屏幕会造成Activity的销毁,当然也会对DialogFragment...事实上,如果我关闭了,上一次的对话框会一直存在;如果我不关闭,但是activity是一定会被销毁的,对话框的dismiss也会出异常。...真心很蛋疼,并且即使对话框关闭了,任务关闭了;用户旋转还是会造成重新创建任务,从头开始加载数据。

    2.1K20
    领券