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

如何在editText外单击时隐藏键盘?

在 EditText 外单击时隐藏键盘,可以通过设置 android:windowSoftInputModestateHidden 或者 stateAlwaysHidden 的方式来实现。另外,还可以使用一些额外的布局技巧和事件监听器来实现这个功能。

具体实现方式如下:

  1. AndroidManifest.xml 文件中设置 android:windowSoftInputMode 属性:
代码语言:xml
复制

<activity android:windowSoftInputMode="stateHidden" ... />

代码语言:txt
复制
  1. 在对应的布局文件中,将 EditText 放置在一个 LinearLayout 或者 RelativeLayout 中,并设置 android:layout_alignParentEnd 属性,同时将 Button 或者其他的视图放置在 EditText 的右边,并设置 android:layout_alignParentStart 属性,来让它们在键盘弹出时能够收起。
代码语言:xml
复制

<LinearLayout

代码语言:txt
复制
   android:layout_width="match_parent"
代码语言:txt
复制
   android:layout_height="wrap_content"
代码语言:txt
复制
   android:orientation="horizontal"
代码语言:txt
复制
   android:layout_alignParentEnd="true"
代码语言:txt
复制
   android:layout_alignParentStart="true">
代码语言:txt
复制
   <EditText android:layout_width="0dp"
代码语言:txt
复制
       android:layout_weight="1"
代码语言:txt
复制
       android:layout_height="wrap_content"
代码语言:txt
复制
       android:hint="Input text" />
代码语言:txt
复制
   <Button android:layout_width="wrap_content"
代码语言:txt
复制
       android:layout_height="wrap_content"
代码语言:txt
复制
       android:text="Submit" />

</LinearLayout>

代码语言:txt
复制
  1. 在 Activity 或者 Fragment 中,获取 EditText 和其他视图的引用,并注册一个点击事件监听器,在点击时收起键盘:
代码语言:java
复制

EditText editText = findViewById(R.id.edit_text);

Button button = findViewById(R.id.button);

// 注册点击事件监听器

editText.setOnClickListener(new View.OnClickListener() {

代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void onClick(View v) {
代码语言:txt
复制
       // 隐藏键盘
代码语言:txt
复制
       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
代码语言:txt
复制
       imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
代码语言:txt
复制
   }

});

button.setOnClickListener(new View.OnClickListener() {

代码语言:txt
复制
   @Override
代码语言:txt
复制
   public void onClick(View v) {
代码语言:txt
复制
       // 隐藏键盘
代码语言:txt
复制
       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
代码语言:txt
复制
       imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
代码语言:txt
复制
   }

});

代码语言:txt
复制

这样一来,当你在 EditText 中输入文本时,单击其他区域就可以隐藏键盘了。

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

相关·内容

你从未见过的EditText属性详解

--和微信需要登录时一样,在文本框中提示的扣扣号,邮箱--> android:textColorHint="#95A1AA" 如设置成"center",文本将居中显示--> 代码实例讲解 通过上面了解 EditText输入框的常用属性之后,结合上几讲 TextView、Button我们通过代码示例来讲解实现一个简单的登录页面效果...); //数字键盘 3.强制显示隐藏软键盘 InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE...); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); //隐藏软键盘 imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED...); //显示软键盘 4.始终不弹出软键盘 //在XML文件中,Edittext父布局上进行如下设置 android:focusable="true" android:focusableInTouchMode

3.3K10
  • Android富文本开发

    如何在ViewGroup中添加view,删除view时给相应view和受影响的其他view添加动画,不太容易做。...stateUnchanged-不改变状态:当前界面软键盘状态由上个界面软键盘的状态决定; stateHidden-隐藏状态:进入页面,无论是否有输入需求,软键盘是隐藏的,但是如果跳转到下一个页面软键盘是展示的...stateAlwaysHidden-总是隐藏状态:当设置该状态时,软键盘总是被隐藏,和stateHidden不同的是,当我们跳转到下个界面,如果下个页面的软键盘是显示的,而我们再次回来的时候,软键盘就会隐藏起来...stateAlwaysVisible-总是显示状态:当设置为这个状态时,软键盘总是可见的,和stateVisible不同的是,当我们跳转到下个界面,如果下个页面软键盘是隐藏的,而我们再次回来的时候,软键盘就会显示出来...解决点击EditText弹出收起键盘时出现的黑屏闪现现象View rootView = hte_content.getRootView(); rootView.setBackgroundColor(Color.WHITE

    8.5K20

    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开发 经验技巧汇总(基于Android Studio)(二)

    中软键盘的调起、关闭 5.禁止EditText自动弹出软键盘 6.EditText输入文本从右边开始显示 7.判断APP是否联网 8.检查网络连接状态的变化无网络时跳转到设置界面 9.复制Assets文件到...4.在EditText中软键盘的调起、关闭 (1)EditText有焦点(focusable为true)阻止输入法弹出 editText.setOnTouchListener(new OnTouchListener...;//关闭软键盘 return false; }}); (2)EditText无焦点(focusable=false)时阻挡输入法弹出 public static void hideInputManager...= null){ imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏 } } (3)键盘永远不会弹出...android:focusable="false"// 键盘永不弹出 5.禁止EditText自动弹出软键盘 (1)在包含EditText的父布局中添加android:focusable="true"

    1.3K20

    Android开发常用的知识点

    软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。...stateUnchanged 当主窗口出现在前面时,软键盘被保持它上次是什么状态,无论上次是可见或隐藏。...stateHidden 当用户选择该Activity时,软键盘被隐藏——也就是说,当用户确定导航到该Activity时,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateVisible 当用户导航到Activity主窗口时,软键盘是可见的。不过当用户离开一个Activity而导致另一个被覆盖的Activity显示出来时,软键盘会使用默认的设置。

    2.6K10

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

    TextView TextView是最基础的文本显示控件了,基本属性如text、textColor、textSize、textDirection、textStyle、textAlignment就不多说了...在录入用户信息时(比如输入姓名、密码等等),EditText输入回车键,常常不要换行而是让光标直接跳到下一个编辑框。这个场景说起来简单,开发过程中就分解为三个功能: 1、监控用户当前输入了回车键。...EditText还有一个需要特殊处理的地方,就是自动关闭软键盘。一般我们希望点击其它控件时,原输入框的软键盘就要自动消失,可惜Android不是这样处理。...下面是自动关闭软键盘的两种方法: 1、调用toggleSoftInput方法,该方法会关闭所有控件弹出的软键盘; InputMethodManager imm = (InputMethodManager...另外注意centerInside,当图片尺寸大于视图时,centerInside等同于fitCenter;当图片尺寸小于视图时,centerInside等同于center。

    1.5K30

    Android软键盘输入处理技巧

    今天我们来讨论一下Android中监听软键盘输入的使用方式。它允许用户输入文本和执行其他操作。但是,有时候我们需要在用户输入文本时进行一些特殊的处理,比如实时验证输入内容、限制输入字符的类型等。...因此,了解如何监听软键盘输入是非常重要的。 如何监听软键盘输入 在Android中,我们可以使用EditText的TextWatcher接口来监听软键盘输入。...它允许应用程序与用户输入进行交互,并处理输入文本的各种操作,如插入、删除和替换文本。 InputConnection 是 Android 软键盘系统和 EditText 控件之间的桥梁。...监听软键盘输入 要监听软键盘输入,首先需要获取 InputConnection 对象,通常在 EditText 控件上调用 onCreateInputConnection 方法。...现在,软键盘输入将通过 MyInputConnection 进行监听和记录。 总结 通过使用TextWatcher接口,我们可以轻松地监听软键盘输入,并在用户输入文本时执行相应的操作。

    48210

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

    在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。...>AirPanelLinearLayout 这里给出这个fragment的相关逻辑实现(当然这个逻辑和软键盘没有任何关系了,只是负责控制哪个面板的显示和隐藏,因为所有的关于软键盘的控制都已经被AirPanelLinearLayout...} /** * 面板变化和相关输入输出的回调 */ public interface PanelCallback { //获取到输入的EditText...的值 EditText getInputEditText(); /** * 点击发送按钮的时候发送图片地址集合 *...--注意一点,根布局使用的是AirPanelLinearLayout--> 好了,看下如何在

    52320

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

    手机上输入文字,都是通过系统自带的软键盘,这个软键盘可以是Android自带的,也可以是第三方软键盘如搜狗输入法。...3、系统软键盘会自动响应EditText的焦点变更事件,常常在意料之外突然之间蹦出来,弄得开发者要么剥夺EditText的焦点,要么强行关闭软键盘显示,但无论哪种方式都得开发者强行**,很不方便。...3、软键盘不是一个孤立的控件,它的按键动作需要实时在某个编辑框中把数字显示出来,所以在使用时还得给它绑定一个EditText,这样软键盘才知道我的按键要输出给这个EditText,而不是输出给那个EditText...EditText对象,即当软键盘发生按键动作时,要把按键结果显示在哪个EditText上。...start - 1, start); } } } else if(primaryCode>='0' && primaryCode<='9') { //可以直接输入的字符(如0

    2.6K30
    领券