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

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

hideSoftInputFromWindow(binding.etChat.windowToken, 0) } 复制代码 在DialogFragment显示时弹出软键盘 在DialogFragment...显示时有两种方式弹出软键盘: 1、在onViewCreated中发送一个延时任务 etChat.postDelayed({ showSoftInput() }, 200) 复制代码 注意:如果直接调用显示键盘不会起作用...复制代码 在DialogFragment消失时关闭软键盘 dialog关闭分为几种情况,处理方式不一样: 1.用户手动调用DialogFragment.dismiss() 这时可以重写dismiss方法...onCancel(dialog: DialogInterface) { hideSoftInput() super.onCancel(dialog) } 复制代码 当这样处理时发现软键盘没有关闭...mService.hideSoftInput 断点发现当在onCancel中关闭软键盘时 mServedView为null,所以走不到关闭代码,看一下mServedView在哪赋值为null的 void

5.2K40

技术 | 当csv文件用excel打开乱码时怎么做

原创内容 No.695 技术 | 当csv文件用excel打开乱码时怎么做 分享几个职场办公小技巧~ 图片由海艺AI绘制 各位打工仔们,可能在工作中的时候遇到过各种各样的csv文件用excel打开的时候的异常情况...对于这种问题,我们可以尝试用txt或者其他其他文本编辑器(如notepad++)打开一下csv文件,如果在其他文本编辑器中中文是正常显示而不是乱码的基本可以实锤确认就是文件编码的问题导致了excel中打开出现中文乱码的问题...首先我们打开一个空白的excel表,选择数据中的从csv获取数据: 然后根据提示选择想要打开的csv文件。会弹出一个power query的界面,在下图这个预览的界面就可以选择文件的编码。...这种问题处理起来就有点麻烦了,对于数据量非常小的情况下,我们可以直接用txt打开csv文件,手动把异常的换行符给删掉再进行用excel打开,但如果数据量大的话就不推荐这么干了。...我们还是打开一个空白的excel表,在数据中选择获取数据>来自文件>从JSON: 根据弹出的提示选择需要打开的问题,然后就会自动启动power query的界面,大概是这个样子的: 选择列表工具中的转换到表

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

    当使用POI打开Excel文件遇到out of memory时该如何处理?

    当我们开发处理Excel文件时,Apache POI 是许多人首选的工具。但是,随着需求的增加、工程复杂,在打开复杂的Excel文件的时候可能会出现一些异常情况。...根据测试,当打开50万个单元格数据的时候,就会遇到OOM(OutOfMemory)的问题;或者当打开包含有20万个合并单元格(包含border或者背景色)的时候,也会遇到OOM(OutOfMemory)...(file); //打开文件后进行其他处理 以上代码在处理大型Excel文件时会导致OOM问题的发生。...第一个办法,对于仅导入数据时很有效。但当Excel是有样式的情况时,把Excel转成CSV就会导致样式丢失,所以pass了这个方法。...经过一些尝试,发现是同一时间构建的workbook太多了,当减少到4个时,单元测试就可以正常跑完。 这样来看,POI的问题还真是让人挺头疼。

    48310

    Android 底部按钮被软键盘顶起问题解决

    如果界面中有可滑动控件,显示效果跟 adjustUnspecified 显示效果一样;如果界面中没有可滑动控件,软键盘可能会盖住一些控件(布局的位置不会发生变化,可能获取了焦点的控件被软键盘盖住)。...一般来说,我们的布局分为两种 底部按钮被滚动布局包裹 底部按钮不被滚动布局包裹 第一种布局是不会出现软键盘把底部按钮顶起的情况,首先软键盘的打开实际上是一个 Dialog,而我们在配置文件内的 adjustResize...第二种情况通常为一个继续按钮始终处于页面的底部,中间的内容可以滚动,当根布局的内边距等于软键盘高度时,底部按钮就看起来像是被顶起。...1、监听软键盘的打开收起 const val SOFT_KEY_BOARD_MIN_HEIGHT = 100 fun Fragment.registerFragment(bottomView: View...bottomView.visibility = View.VISIBLE } } } } 2、修改 windowSoftInputMode adjustPan 如果设置了这个属性,当软键盘弹出的时候

    2.2K20

    移动端那些戳中你痛点的软键盘问题及解决方法

    (对于这点,ios本身是支持的,但是安卓却并不会主动让输入框出现在可视区域内) 4、对于部分ios系统下的部分微信webview内,发现软键盘收起时,滚动上去的页面没有滚动下来,造成了下面区域留出了一片灰色的区域...IOS 软键盘收起表现 触发软键盘上的“收起”按钮键盘或者输入框以外的页面区域时,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外的区域时,输入框失去焦点,软键盘收起。...但是,触发键盘上的收起按钮键盘时,输入框并不会失去焦点,同样软键盘收起。 ? ? 2、为什么fixed会失效 既然ios键盘弹起时,页面会上移,那么为什么fixed会失效呢。...收起键盘后,「滚动过头」的部分会被弹回,fixed 元素发生重新计算,但页面并不会回到与打开键盘前相同的位置。...在 Android 上,监听 webview 高度会变化,高度变小获知软键盘弹起,否则软键盘收起。 // IOS 键盘弹起:当输入框被聚焦时IOS键盘会被弹起 inputRef?.

    8.9K30

    仿iOS底部弹框实现及分析

    2 实现弹框: 因为后来谷歌推荐使用的DialogFragment,所以我们此处弹框也是使DialogFragment。...再继承DialogFragment来实现我们的IOSDialogFragment: IOSDialogFragment.java: ?...3 弹框从下而上显示: 我们看过ios的弹框效果,是从底部从下而上升起,然后消失的时候也是从上而下消失。...所以消失的时候我们不能单纯的让DialogFragment执行dismiss(),而是先让弹框执行下移的动画效果,然后再dismiss()。...6 点击空白让弹框消失问题: 当点击上方一些空白处,我们会发现我们的弹框会直接消失,而不会像我们上面点击按钮点击事件那样,弹框先往下移动再消失,因为DialogFragment默认点击弹框外的时候

    1.9K10

    Android 沉浸式解析和轮子使用

    提示气泡——第一次进入沉浸模式时,系统将会显示一个提示气泡,提示用户如何再让系统栏显示出来。...请注意,如果为了测试你想强制显示提示气泡,你可以先将应用设为沉浸模式,然后按下电源键进入锁屏模式,并在 5 秒中之后打开屏幕。 沉浸模式—— 这张图展示了隐藏了系统栏和其他UI控件的状态。...滑动的操作并不会清空任何标签,也不会触发系统 UI 可见性的监听器,因为暂时显示的导航栏并不被认为是一种可见的状态。...另例:需要注意dialogFragment和Dialog是有自己的window,该window是属于所属Activity的子window,所以设置dialogFragment和Dialog的沉浸式改变的是自己...app:titleTextColor="@android:color/white" /> ② 使用系统的fitsSystemWindows属性,使用该属性不会导致输入框与软键盘冲突问题

    3.2K10

    android推荐使用dialogFrament而不是alertDialog

    DialogFragment在android 3.0时被引入。是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。...2、 好处与用法 使用DialogFragment来管理对话框,当旋转屏幕和按下后退键时可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。...MainActivity中需要实现我们的接口LoginInputListener,实现我们的方法,就可以实现当用户点击登陆时,获得我们的帐号密码了: c)  MainActivity   package...左边为模拟器,右边为我的手机~~~~~ 7、屏幕旋转 当用户输入帐号密码时,忽然旋转了一下屏幕,帐号密码不见了~~~是不是会抓狂 传统的new AlertDialog在屏幕旋转时,第一不会保存用户输入的值...可以看到,传统的Dialog旋转屏幕时就消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment的介绍结束~~~~ 源码点击下载

    2.4K50

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

    当Android系统因为配置变化关闭你的Activity的时候,你的Activity中被标识保持的fragments不会被销毁。...从效果图可以看到,无论如何旋转不会重启Activity. 效果图: 6、旋转屏幕的最佳实践 下面要开始今天的难点了,就是处理文章开始时所说的,当异步任务在执行时,进行旋转,如果解决上面的问题。...下面我们希望有一种解决方案:在加载数据时旋转屏幕,不会对加载任务进行中断,且对用户而言,等待框在加载完成之前都正常显示: 当然我们还使用Fragment进行数据保存,毕竟这是官方推荐的: OtherRetainedFragment...当然了,运行过程中Activity不断的重启,我们也提供了setActivity方法,onDestory时,会setActivity(null)防止内存泄漏,同时我们也会关闭与其绑定的加载框;当onCreate...传入新的Activity时,我们会在再次打开一个加载框,当然了因为屏幕的旋转并不影响加载的数据,所有后台的数据一直继续在加载。

    2.1K20

    Ionic3学习笔记(九)关于 Android 端软键盘弹出后界面被压缩的问题

    当软键盘弹出后,Android 端的 tabs 移到了软键盘的上面,再仔细一看,整个界面都被压扁了,输入框也不知道去哪儿了。...于是又想到是不是 android:windowSoftInputMode 属性出了问题,打开 AndroidManifest.xml,发现 Ionic 3 将 android:windowSoftInputMode...stateUnspecified 未指定软键盘的状态,系统将自动选择一个合适的状态或依赖于主题中的设置。 stateUnchanged 当前界面的软键盘状态取决于上一个界面的软键盘状态。...stateHidden 用户选择 Activity 时,软键盘总是被隐藏。 stateAlwaysHidden 当该 Activity 主窗口有输入需求时,软键盘总是被隐藏。...stateVisible 软键盘通常可见。 stateAlwaysVisible 用户选择 Activity 时,软键盘总是可见。

    96420

    【H5】209-可能这些是你想要的H5软键盘兼容方案

    在IOS12 上,微信版本 v6.7.4 及以上,输入框获取焦点,键盘弹起,页面(webview)整体往上滚动,当键盘收起后,不回到原位,导致键盘原来所在位置是空白的。...IOS 软键盘收起表现 触发软键盘上的“收起”按钮键盘或者输入框以外的页面区域时,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外的区域时,输入框失去焦点,软键盘收起。...但是,触发键盘上的收起按钮键盘时,输入框并不会失去焦点,同样软键盘收起。 ? ?...当输入框位于页面下部位置时,在 IOS 上,会将 webview 整体往上滚一段距离,使得该获取焦点的输入框自动处于可视区,而在 Android 则不会这样,它只会改变页面高度,而不会去滚动到当前焦点元素到可视区...兼容 IOS12 + V6.7.4+ 如果你在用 IOS12 和 V6.7.4+版本的微信浏览器打开上面表单输入的 demo ,就会惊奇的发现键盘收起后,原本被滚动顶起的页面并没有回到底部位置,导致原来键盘弹起的位置

    4K12

    AndroidMainifest标签说明2——<activity>

    android:finishOnTaskLaunch 默认false 假设再次打开这个事务那么原来存在的会不会关闭。“true”原来的打开的就关闭了。“false”不关闭。...在动作条显示操作项,当约束的水平空间。而不是少数出如今屏幕上方操作栏中的行动项目。操作栏被分成顶部导航部分和操作项的底部栏。这保证了空间的合理量可供不仅为行动项目,同一时候也为在顶部导航和标题元素。...菜单项不会在两个栏分裂;他们总是一起出现。 android:windowSoftInputMode 窗体软键盘模式。...“stateUnchanged” 软键盘上一次保存在不论什么状态,是否可见或隐藏,当活动走到前台。 “stateHidden” 软键盘是隐藏的,当用户选择activity时。...“stateVisible” 可见的,当activity激活的时候 “stateAlwaysVisible” 总是可见的 “adjustUnspecified” 未指定活动的主窗体的大小是否为软键盘

    1.5K00

    DialogFragment踩坑记

    普通的Fragment还是DialogFragment 同时设置不要Title跟背景 隐藏Dialog 不保留活动 显示的逻辑 推荐使用DialogFragment 要选android X下的DialogFragment...DialogFragment有两个不同的包名 androidx.fragment.app.DialogFragment android.app.DialogFragment 为了兼容各个Android...版本的,记得要选择第一种DialogFragment,当然,系统源码也很贴心的把它Framework的DialogFragment设置为不推荐使用,而且还注明让你使用support包下面的DialogFragment...#dismissAllowingStateLoss方法,就不会走到checkStateLoss,就可以轻易规避这个问题了 特别强调的是,这个报错自测阶段很不容易暴露出来,但是一上线上环境就容易发生,需要注意规避...其实内部是通过commit方法,而不是commitAllowingStateLoss方法,所以当业务方有可能在页面不可见的时候调用展示

    2.2K30

    可能这些是你想要的H5软键盘兼容方案

    在IOS12 上,微信版本 v6.7.4 及以上,输入框获取焦点,键盘弹起,页面(webview)整体往上滚动,当键盘收起后,不回到原位,导致键盘原来所在位置是空白的。...IOS 软键盘收起表现 触发软键盘上的“收起”按钮键盘或者输入框以外的页面区域时,输入框失去焦点,软键盘收起。 Android 软键盘收起表现 触发输入框以外的区域时,输入框失去焦点,软键盘收起。...但是,触发键盘上的收起按钮键盘时,输入框并不会失去焦点,同样软键盘收起。 ?...当输入框位于页面下部位置时,在 IOS 上,会将 webview 整体往上滚一段距离,使得该获取焦点的输入框自动处于可视区,而在 Android 则不会这样,它只会改变页面高度,而不会去滚动到当前焦点元素到可视区...兼容 IOS12 + V6.7.4+ 如果你在用 IOS12 和 V6.7.4+版本的微信浏览器打开上面表单输入的 demo ,就会惊奇的发现键盘收起后,原本被滚动顶起的页面并没有回到底部位置,导致原来键盘弹起的位置

    8.1K20

    DialogFragment 使用

    DialogFragment 意义 它和Fragment基本一致的生命周期,因此便于Activity更好的控制管理DialogFragment。...= null) { window.setLayout(lp.width, lp.height); } } } DialogFragment消失操作 DialogFragment在正常Dismiss后并不会直接从当前的栈中移除...,而是在DialogFragment中的onDestroyView()回调时,才会对DialogFragment进行出栈操作,所以如果你如果需要在Activity中频繁的显示隐藏一个DialogFragment...,那么在dismiss时需要手动的调用dismissAllowingStateLoss()方法,并且再次show时不能用上一个DialogFragment实例。...,所以我们如果需要对Dialog的消失进行监听的话只需重写onDismiss方法即可,还有一种方式则是覆盖父类设置的onDismissListener监听,但是需注意的时,这个监听的复写,必须在父类onActivityCreate

    1.6K10

    【Android开发高级系列】AndroidManifest.xml专题

    当为true时,用户可自己清理用户数据,反之亦然。     ...比如一个浏览器拥有很多状态(当打开了多个TAB的时候),用户并不希望丢失这些状态时,此时可将此属性设置为true。     ...这个属性能影响两件事情:     【A】当有焦点产生时,软键盘是隐藏还是显示;     【B】是否减少活动主窗口大小以便腾出空间放软键盘;         各值的含义:     【A】stateUnspecified...;     【C】stateHidden:用户选择activity时,软键盘总是被隐藏;     【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的;...)这两个方法,当停止Service时,则执行onDestroy()方法,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法

    89250
    领券