Android Dialog 隐藏键盘问题

Android DiaLog 实现收起软键盘(隐藏键盘) ** 前文:当我们在编辑一段文本时候,系统会自动弹起键盘,但是当我们点击屏幕其他地方想要收起键盘时,却没有效果,只有按返回键才可以,那么我们如何处理这种情况呢? 收起键盘的操作我这里就不做介绍了,相信大家都应该有处理过,但是在Dialog弹窗的情况下我们又如何收起键盘呢?话不多说 下面看代码:** DiaLog 收起软键盘 首先Dialog弹窗我这里就不多做解释了,直接说它如果去实现收起软键盘: 我说这样处理的,当我们在编辑文本时,如果不想编辑了,那下意识的就会点击弹窗以外的屏幕 那我们就模拟这个操作,其实 阅读详情

场景:自定义了一个Dialog,Dialog里面包含EditText,当输入时手机键盘会弹出,但是点击空白区域Dialog关闭时键盘不会自动隐藏。

之前也自定义过一个Dialog,里面也是包含EditText,不过因为这个Dialog占地方比较大,当弹出键盘时已经没有空白区域可以点击,所以在Dialog上添加了一个关闭按钮,然后调用下面方法:

public static void hideSoftKeyboard(Activity context, View view) {
        InputMethodManager imm = (InputMethodManager) context
                .getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }

这样Dialog关闭后键盘都可以自动收起,但是最近做的一个Dialog,当弹出键盘后点击空白区域Dialog关闭了但是键盘还是没有收起!!! 通过不断的尝试发现了另外一个方法:

首先我们监听Dialog的关闭方法,然后调用收起键盘的方法。

this.setOnDismissListener(new OnDismissListener() {

            @Override
            public void onDismiss(DialogInterface dialog) {
                // TODO Auto-generated method stub
                InputMethodManager inputMgr = (InputMethodManager) context
                .getSystemService(Context.INPUT_METHOD_SERVICE);
                inputMgr.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0);
            }
        });

这样当点击空白区域关闭Dialog的时候,键盘也可以收起了。不过这个方法有个弊端就是如果键盘没有弹出的话就会弹出键盘。。。(好坑), 而且判断键盘是否弹出的方法inputMgr.isActive()会一直返回true。。最后没办法只能通过重写父布局,这我是重写的RelativeLayout,通过onSizeChanged(int w, int h, int oldw, int oldh)和onLayout(boolean changed, int l, int t, int r, int b)方法来判断键盘是否弹出,最后调用上面的方法解决。

这里再提个自定义Dialog需要注意的问题:当我们给Dialog自定义布局的时候会发现即使我们没有设置背景,会发现Dialog的背景为白色,一般我们需要的是透明。这里在自定义的时候需要在代码里加入:

        Window dialogWindow = getWindow();
        WindowManager.LayoutParams lp = dialogWindow.getAttributes();
        dialogWindow.setBackgroundDrawableResource(android.R.color.transparent);
        DisplayMetrics d = context.getResources().getDisplayMetrics();
        lp.width = (int) (d.widthPixels * 0.6);
        dialogWindow.setAttributes(lp);
Android软键盘的监听,显隐控制以以及弹出遮挡布局的解决方法(用于fragment,dialog) 项目中需要对软键盘进行监听,控制它的显隐以及解决弹出时遮挡部分布局,本例子是在fragment和dialog使用,activity中未测试,不过从代码上看是可以使用的。 工具类如下: public class SoftKeyBoardListener { public static boolean softKeyFlag;//软键盘显隐标记.true为显示 public st... 阅读详情

相关推荐

Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)

项目中需要开发带有EditText的Dialog显示,要求在编辑完EditText时,点击Dilog的空白处隐藏软键盘。但是Dialog不会消失。下面通过实例代码给大家分享实现方法,需要的的朋友参考下吧

Android在dialog中如何隐藏输入法

如果是在正常的情况下我们都会这样去隐藏输入法 public static void showInputKeyboard(Context context , View view){         if (null != view){             InputMethodManager inputMethodManager = (InputMethodManager)     con

ocean_chang的博客 820

当Flowable遇上AI:智能流程决策的未来探索

本文探讨了Flowable工作流引擎与AI技术的融合,构建智能流程决策系统的前沿实践。通过动态流程控制、机器学习优化表达式、自然语言生成规则等创新方法,显著提升业务流程的自动化水平和决策效率。重点解析了AI如何赋能Flowable核心引擎,实现从静态规则到动态智能的跨越式发展。

weixin_29271053的博客 388

android 隐藏输入法

试过hideSoftInputFromWindow不起作用,只有toggleSoftInput其作用,但是这个方法是:输入法隐藏的时候显示,输入法显示的时候隐藏。我的应用场景是dialogFragment关闭的时候要把输入法隐藏,如果输入法本身就是隐藏状态,那么输入法会显示出来,这样是不对的。所以要加一个判断输入法是否是显示状态(参考https://www.jianshu.com/p/2bdb40...

u014050788的专栏 2147

【通信协议-RTCM】MSM语句(1) - 多信号GNSS观测数据消息格式

注释:RTCM响应消息1020为GLONASS星历信息,暂不介绍,前公司暂未研发RTCM消息类型版本的DR/RTK模块,DR/RTK模块仅NMEA消息类型使用注释:公司使用的多信号语句类型为MSM4&MSM7,也应该是运用最广泛的语句类型,例如本人之前在公司开发的工具全是基于MSM7语句类型来进行的。

qxj2422640226的博客 2092

VMware Converter 6.2.0保姆级教程:从物理机到ESXi主机的完整迁移指南(含常见错误排查)

本文提供VMware Converter 6.2.0从物理机迁移至ESXi主机的完整保姆级教程。详细解析了迁移前的环境规划、核心转换过程步骤、版本差异对比,并重点针对代理安装失败、任务卡顿、虚拟机无法启动等常见错误提供了实战排查与解决方案,确保P2V迁移顺利进行。

sam99的博客 379

Android中根据dialog的展示与否控制软键盘的显示与隐藏

软键盘的显示与隐藏

weixin_37166398的博客 2985

NLTK中WordNet与同义词处理

通过本教程,学习了如何使用NLTK中的WordNet进行自然语言处理任务。首先介绍了WordNet的基本概念及其在NLTK中的集成使用,接着讲解了如何查找同义词、反义词等词汇关系,并结合实际应用演示了语义相似性计算。这些技能在文本分析、情感分析、信息检索等场景中有广泛应用,可以帮助开发者构建更智能的自然语言处理系统。掌握这些基本操作后,可以进一步探索WordNet的其他高级功能,结合其他NLTK工具进行更复杂的语言分析。

Mr数据杨 471

Android Dialog隐藏消失时软键盘无法收回问题解决

原因 Dialog 的 OnDismissListener 回调时View可能已经回收,导致无法根据View收起软键盘。 解决 重写dismiss方法,强制收起软键盘即可 override fun dismiss() { val view = currentFocus if (view is TextView) { val mInputMethodManager = context.getSystemService(Co

木寸~ 2509

VIVADO IP核之FIR插值器多相滤波仿真

网络上有许多文章介绍FIR低通滤波器的使用,包括仿真。关于FIR低通滤波器的使用,我之前的文章已经介绍过了,本文将继续深入介绍FIR插值器多相滤波的使用方法,并将FIR插值多相滤波的结果与MATLAB仿真计算的结果比较,验证了FIR插值器多相滤波使用正确。

m0_66360845的博客 3381

OpenCV实战系列——图像线条提取

基于内容的图像分析,需要从构成图像的像素集合中提取有意义的特征。轮廓、线条、区域等是基本的图像基元,可用于描述图像中包含的元素。本节将介绍如何提取重要的图像线条特征。

m0_58523831的博客 1万+

Android 解决Dialog导致软键盘无法隐藏的问题

解决办法: hideSoftInputFromWindow(view.getWindowToken(), 0);这个方法中的第一个参数传dialog的view 例如: Dialog dialog = new Dialog(getContext(), R.style.ActionSheetDialogStyle); InputMethodManager imm=(InputMethodManager)getContext().getSystemService(Context.INPUT_METHO

zz51233273的博客 1512

AUTOSAR&UDS 理论要点及isolar实战-DEM模块

从这节开始,将讲解UDS诊断中非常重要的知识点:故障事件触发、故障信息上报、故障信息处理、故障信息存储和故障系统降级,后续会陆续更新。

cqaa11的博客 552

android写一写隐藏代码是什么,Android Dialog中软键盘的显示与隐藏的示例

1.写在前面本篇的主要内容是关于在Dialog中软键盘的显示与隐藏问题,需求是在Dialog中有一个密码输入框,弹出Dialog显示软键盘,关闭Dialog隐藏软键盘。嗯,是不是有点简单,不过在实现的过程中还是遇到了一些问题,在试过了网上大部分的方法之后,最终找到了一个还不错的方法,分享给大家。看下效果图:2.实现过程先说说最开始的实现方法:// 显示Dialogdialog.show();// ...

weixin_34305716的博客 101

STM32(HAL库)驱动HC-SR04测距模块

本文介绍通过STM32F103C8T6单片机对HC-SR04测距模块进行驱动,并且通过串口对数据进行打印。

weixin_44597885的博客 2203

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android隐藏dialog,Android:Dialog中隐藏键盘的注意事项

场景:弹出一个Dialog。里面有一个EditText。用来输入内容。由于输入时。须要弹出键盘。所以当Dialog消失时。键盘要一起隐藏。如今我们做一个自己定义的DialogMyDialog extends Dialog一開始觉得这个功能非常easy实现,于是写了以下的代码//Dialog的构造函数中写this.setOnDismissListener(new OnDismissListener(...

weixin_30010987的博客 368

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android的Dialog使用方法,Android 开发之Dialog中隐藏键盘的正确使用方法

Android 开发之Dialog中隐藏键盘的正确使用方法场景:弹出一个Dialog,里面有一个EditText,用来输入内容,因为输入时,需要弹出键盘,所以当Dialog消失时,键盘要一起隐藏。现在我们做一个自定义的DialogMyDialog extends Dialog一开始认为这个功能很容易实现,于是写了下面的代码//Dialog的构造函数中写this.setOnDismissListen...

weixin_34582773的博客 346

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android studio 隐藏显示,Android Studio 隐藏和显示键盘

一、Activity和Fragment中显示和隐藏显示键盘public static void showKeyBoard(EditText mEditText){InputMethodManager inputManager = (InputMethodManager) mEditText.getContext() .getSystemService(Context.INPUT_METHOD_SE...

weixin_36471865的博客 1998

Android开发技术点6——Dialog 键盘处理

通常我们使用InputMethodManager来处理应用中软键盘的操作,定义如下: private InputMethodManager mInputMethodManager; mInputMethodManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 今天要说的

Holiday 555

软键盘显示的情况下弹出dialog,dialog会出现在软键盘上方

问题: 界面中有一个edittext,选中时候弹出软键盘;在软键盘显示的情况下点击另外一个弹出底部dialog的控件时候,发现dialog出现在软键盘上方了,如下图所示: 解决办法 1、windowSoftInputMode(没来得急尝试) 2、弹出dialog之前手动判断软键盘是否显示,如果显示的情况下对其进行隐藏 使用 ...

倒骑驴走着瞧的博客 2578

android fragment 隐藏软键盘,Fragment中出现dialog消失软键盘强制出现的情况,及解决方法...

使用到的dialog代码AlertDialog.Builder builder = new AlertDialog.Builder(context);payingDialog = builder.create();payingDialog.setCancelable(false);payingDialog.show();View view = LayoutInflater.from(context...

weixin_32635501的博客 813

android 键盘自动收起来了,Android 键盘收起

最近项目上遇一个键盘问题:在一个Activity上显示了一个带EditText的Dialog,在Dialog的OnDismissListener调用了键盘的hideSoftInputFromWindow()方法,但键盘并没有隐藏,还返回了false。这个方法有两个参数,下面是我传入的值。if (getWindow().getCurrentFocus() != null) {imm().hideSo...

weixin_29294975的博客 1100

dialog dismiss时键盘不消失的问题。

当setCanceledOnTouchOutside(true),点击阴影处,dialog dismiss时键盘不消失的问题。一开始觉得很简单,监听下onDimiss()方法,在里面隐藏键盘不就行了。 但是发现大多数手机都不会隐藏(魅族x4会隐藏)。这是为什么呢?为什么键盘不消失呢? 经过测试,发现edittext.getWindowToken()为null。 /** * 关闭键盘

heavenTear专栏 4900

软件盘将dialog顶上去_Android dialog软键盘弹出顶起View

此文章只为自己随手笔记,可不做参考。前提:需求:要求点击一个按钮,弹出一个弹出框,从底部弹出,里面包含输入框和其他按钮。一开始我一直用 RelativeLayout 做布局,因为需要从底部弹出,所以该布局可以很简单的把 View 控制在底部。 但紧接着问题出来了,弹出来的软键盘会遮住大部分的 View,只留输入框,而且还显示不全。 一直纠结中。机缘巧合之下,使用了LinearLayout 做最顶层...

weixin_33171271的博客 3158

解决Android dialog中含有edittext, dismiss时软键盘不会自动消失的问题

解决方案: 重写dialog类中dismiss方法: public class DzDialog extends Dialog { public DzDialog(Context context, int theme) { super(context, theme); } public DzDialog(Context context) { super(context); ...

qq_35739488的博客 1494

Android关闭键盘时的一个小问题

最近遇到一个问题,拿出来跟大家分享下,并希望高手分析。 事情是这样的,我在一个新弹出的dialog里有一个输入框,希望在弹出的时候自动把软键盘打开,输入完点击确定或取消的时候把软键盘关闭。 创建dialog的代码   AlertDialog.Builder builder=new AlertDialog.Builder(context);         final AlertDialog

fly_yuge的博客 652
上一篇: 设计模式-抽象工厂模式
下一篇: Android RocooFix 热修复框架
Mackkill
博客等级 码龄15年 65粉丝 39原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值