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

如何在EditText外单击后在android上隐藏软键盘?

在Android上隐藏软键盘的方法有多种,以下是一种常用的方法:

  1. 首先,需要获取当前的输入法管理器(InputMethodManager)对象:InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
  2. 然后,调用hideSoftInputFromWindow()方法隐藏软键盘。该方法需要传入两个参数:EditText的窗口标识符和隐藏软键盘的选项。通常,可以使用当前活动的窗口标识符和0作为选项:imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

完整的代码示例:

代码语言:java
复制
import android.content.Context;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    private EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editText = findViewById(R.id.editText);

        // 在EditText外单击时隐藏软键盘
        editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) {
                    hideKeyboard();
                }
            }
        });
    }

    private void hideKeyboard() {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
    }
}

这样,当用户在EditText外单击时,软键盘就会被隐藏起来。

推荐的腾讯云相关产品:腾讯移动推送(https://cloud.tencent.com/product/tpns

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android之编辑框限定范围

登陆界面里我们通常都需要限定用户输入数据的范围,如出生日期,密码长度……这些设置我们早已在pc上熟悉得不得了,然而今天我们讲讲如何在android里设置编辑框的范围。...首先,我们知道,android的编辑框是EditText,而EditText有很方便的属性,就是inputType,这里我们可以设置数字,邮箱地址,密码等等的类型。...然后,如果你要设置数值的大小范围或者字符串的长度范围,那就需要我们在代码里面设置了,我们需要为EditText添加TextWatcher监听器,该监听器最重要的方法就是afterTextChanged,...,可以在IME Options里设置,如 默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘 image.png 设置 android:imeOptions="actionDone..." ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭 image.png android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个

1.6K30

Android富文本开发

压缩后的图片大小应该和用来展示它的控件大小相近,在一个很小的ImageView上显示一张超大的图片不会带来任何视觉上的好处,但却会占用相当多宝贵的内存,而且在性能上还可能会带来负面影响。...,不主动弹软键盘) 在第一个输入框的最直接父布局加入:android:focusable="true";android:focusableInTouchMode="true" (效果:软键盘不弹出,光标不显示...2:editText不获取焦点,当然软键盘不会主动弹出(光标也不显示) 在第一个输入框的最直接父布局加入:android:focusable="true";android:focusableInTouchMode...stateUnchanged-不改变状态:当前界面软键盘状态由上个界面软键盘的状态决定; stateHidden-隐藏状态:进入页面,无论是否有输入需求,软键盘是隐藏的,但是如果跳转到下一个页面软键盘是展示的...stateAlwaysHidden-总是隐藏状态:当设置该状态时,软键盘总是被隐藏,和stateHidden不同的是,当我们跳转到下个界面,如果下个页面的软键盘是显示的,而我们再次回来的时候,软键盘就会隐藏起来

8.5K20
  • Android开发常用的知识点

    尺寸上做标注 EditText 去掉下划线 android:background="@null" 光标颜色和文字一样 android:textCursorDrawable="@null" 自定义光标颜色...EditText的控件中找一个,设置成 android:focusable="true" android:focusableInTouchMode="true" 软键盘不遮挡 解决Android软键盘在全屏下设置...="actionNext" android:nextFocusForward="@+id/userpwd_edittext" //密码输完后 把焦点放到登录按钮上 android:imeOptions=...stateHidden 当用户选择该Activity时,软键盘被隐藏——也就是说,当用户确定导航到该Activity时,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。

    2.6K10

    Android开发 经验技巧汇总(基于Android Studio)(二)

    实现 方法二:通过单元测试实现 4.在EditText中软键盘的调起、关闭 5.禁止EditText自动弹出软键盘 6.EditText输入文本从右边开始显示 7.判断APP是否联网 8.检查网络连接状态的变化无网络时跳转到设置界面...; } } (3)运行 常用的运行方法有三种: ①直接点击函数右边三角符号; ②在.java文件上右键,选择Run; ③点击工具栏上的三角符号。 如下图所示 ?...4.在EditText中软键盘的调起、关闭 (1)EditText有焦点(focusable为true)阻止输入法弹出 editText.setOnTouchListener(new OnTouchListener...android:focusable="false"// 键盘永不弹出 5.禁止EditText自动弹出软键盘 (1)在包含EditText的父布局中添加android:focusable="true"...|stateHidden"> (3)进入页面强制隐藏软键盘 如果前两种方法都不起作用的话,可以使用这种方法: /** * 隐藏输入软键盘 * @param context

    1.3K20

    Android点击其他地方隐藏键盘

    Android点击其他地方隐藏键盘 1.第一种:隐藏页面一进来EditText获取焦点就弹出软键盘 在oncreate()里调用如下方法即可 /** * 隐藏软键盘 */...获取焦点已经弹起软键盘,点击其他空白区域隐藏软键盘 此方法可以写到BaseActivity中其他Activity就相应的也会继承 @Override public boolean dispatchTouchEvent...所在坐标和用户点击的坐标相对比, * 来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏 */ private boolean isShouldHideKeyboard...则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点 return false; } /** * 获取InputMethodManager...,隐藏软键盘 */ private void hideKeyboard(IBinder token) { if (token !

    3.3K10

    Android开发笔记(一百四十八)自定义输入法软键盘

    手机上输入文字,都是通过系统自带的软键盘,这个软键盘可以是Android自带的,也可以是第三方软键盘如搜狗输入法。...那么这个软键盘又是如何实现的呢?其实它跟平常的自定义控件基本类似,只在细节上有所差异,下面分步说明自定义软键盘的过程。...软键盘采取的是后一种方式,只不过它的布局文件不是放在res/layout目录,而是保存在res/xml目录。...3、软键盘不是一个孤立的控件,它的按键动作需要实时在某个编辑框中把数字显示出来,所以在使用时还得给它绑定一个EditText,这样软键盘才知道我的按键要输出给这个EditText,而不是输出给那个EditText...EditText对象,即当软键盘发生按键动作时,要把按键结果显示在哪个EditText上。

    2.6K30

    Android软键盘输入处理技巧

    今天我们来讨论一下Android中监听软键盘输入的使用方式。它允许用户输入文本和执行其他操作。但是,有时候我们需要在用户输入文本时进行一些特殊的处理,比如实时验证输入内容、限制输入字符的类型等。...因此,了解如何监听软键盘输入是非常重要的。 如何监听软键盘输入 在Android中,我们可以使用EditText的TextWatcher接口来监听软键盘输入。...) { // 在文本改变后执行的操作 } }); 通过TextWatcher接口,我们能显示层进行输入监听,但如果我们需要在软键盘操作的过程中就监听用户的输入行为,又该如何实现呢...InputConnection 在Android开发中,InputConnection是一个用于与软键盘交互的接口。...它允许应用程序与用户输入进行交互,并处理输入文本的各种操作,如插入、删除和替换文本。 InputConnection 是 Android 软键盘系统和 EditText 控件之间的桥梁。

    48210

    一对一直播源码开发,表情面板无缝切换的实现

    在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。.../res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/airPanelSubLayout..." android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop...>AirPanelLinearLayout 这里给出这个fragment的相关逻辑实现(当然这个逻辑和软键盘没有任何关系了,只是负责控制哪个面板的显示和隐藏,因为所有的关于软键盘的控制都已经被AirPanelLinearLayout...--注意一点,根布局使用的是AirPanelLinearLayout--> 好了,看下如何在

    52320

    Android开发笔记(三十六)展示类控件

    TextView TextView是最基础的文本显示控件了,基本属性如text、textColor、textSize、textDirection、textStyle、textAlignment就不多说了...EditText EditText是文本输入框,与输入有关的属性说明如下: 在XML布局文件中指定: inputType : 指定输入的文本类型。...该功能有两种实现方式: 方式一:在布局文件的EditText节点中加入singleLine属性,但该方式只在视觉上起作用,真正的字符串还是带有回车换行符; android:singleLine="true...EditText还有一个需要特殊处理的地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框的软键盘就要自动消失,可惜Android不是这样处理。...android.widget.EditText; import android.widget.TextView; public class LiveTextActivity extends Activity

    1.5K30

    Android爬坑之旅:软键盘挡住输入框问题的终极解决方案

    最基本的情况,如图所示:在页面底部有一个EditText,如果不做任何处理,那么在软键盘弹出的时候,就有可能会挡住EditText。...↑↑↑ OK,这只是入门,基本上地球上所有的Android工程师都能搞定。 别急,看下面~ 加上WebView试试看?坑来了…… 上面的入门篇中,软键盘是由原生的EditText触发弹出的。...经过测试,基本在各个Android版本上都可用,效果基本与设置了adjustResize相当。 看一个对比图: ?...,是目前在视觉效果上能看到的界面高度。...因为能触发OnGlobalLayout事件的原因有很多,不止是软键盘的弹出变化,还包括各种子View的隐藏显示变化等,它们对界面高度的影响有限。

    4.9K20

    自封装Android软键盘工具类ImeUtil

    在我们的开发过程中,键盘的显示和隐藏是经常遇到的,因为在该显示的时候显示,该隐藏的时候隐藏是非常人性化的表现,不用用户再次的点击触发。为此,我专门写了一个工具类,方便大家以后开发的时候调用。...代码如下: package net.loonggg.driving.book.util; import android.content.Context; import android.view.View...; import android.view.inputmethod.InputMethodManager; /** * 工具类ImeUtil * * @author loongggdroid...* */ public class ImeUtil { /** * 显示和隐藏软键盘 View : EditText、TextView isShow : true = show , false...Context.INPUT_METHOD_SERVICE); view.requestFocus(); imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); } /** * 隐藏软键盘

    1.3K100

    android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置

    以下是工作中用到的管理员登录框,由于是双屏异显,在后屏弹出的对话框,没法调用系统软键盘,于是自己实现了个系统软件盘。 但一弹出来软键盘,对话框就被该住了!这怎么破?方法是有的。...就是本文介绍的,随着软键盘的弹起自动移动位置的对话框。 ? 先封装实现个baseDialog基础类,把通用的操作封装一下。...DialogInterface dialog) { doDismiss(); } public void doDismiss() {} /** * 隐藏虚拟按键...Dialog的基础类,因为后屏的Dialog的像素密度跟前屏不一样,所以需要改下像素密度才能正常显示 * 前屏像素密度为1,后屏获取到的为2 */ public class BackDialog extends...; import android.widget.EditText; import com.newcapec.visitorsystem.R; import com.newcapec.visitorsystem.diyview.AbcNumberViewBack

    72510

    EditText 集锦 - 开发中常用的用法及遇到的各种坑

    前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。...@null"设置背景为透明.当我们设置背景后,EditText的那条线就会消失. android:textAppearance //设置文本的颜色,字体,大小和样式. android:digits //...如设置成1.5倍. ---- 输入法相关 设置默认输入法 有时候为了提高用户体验,在弹出输入法时需要设置默认的输入状态,比如单词应用弹出输入法时,输入法最好是在英文输入状态下。...(true); editText.requestFocus(); //显示软键盘 activity.getWindow().setSoftInputMode..., 0); } 取消 EditText 默认获取焦点的行为 在EditText的父级控件中找一个,添加这两个属性: android:focusable="true" android:focusableInTouchMode

    2.3K20
    领券