首页
学习
活动
专区
工具
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 中输入文本时,单击其他区域就可以隐藏键盘了。

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

相关·内容

实现Android键盘的中英文适配

“1234567890....键图标的设置 想象一下,当我们在EditText中完成了输入,想要以输入的内容作为关键字进行搜索,却需要按下“完成”图标的Enter按键,显然这不符合良好的用户体验设计。 ...:用户选择activity,软键盘总是被隐藏 【D】stateAlwaysHidden:当该Activity主窗口获取焦点,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的...【F】stateAlwaysVisible:用户选择activity,软键盘总是显示的状态 【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize...方法三: 强制隐藏Android输入法窗口 例如: EditText edit=(EditText)findViewById(R.id.edit); InputMethodManager imm

2.1K10

Android富文本开发

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

8.4K20

Android UI开发中所遇到的各种坑

1.软键盘隐藏问题 问题描述:Activity按下返回调用finish()方法后,界面已经销毁,但是软键盘依然还留在屏幕上,这让当前正在显示的Activity没有输入框的完全没法看,非常严重的视觉影响。...尝试方案:寻找各种方法去隐藏键盘,网上各种找。思路是在活动退出,会调用onDestroy方法销毁界面,在这个方法里面想办法隐藏界面即可。找到下面这种方法,但还是不行。...还尝试过用基类找到所有edittext然后让它们失去焦点,隐藏键盘。...所以在onPasue()方法里隐藏键盘就有效,在onDestroy()方法里不管用任何方法都是无效的。...注意点:用这个隐藏键盘的方法,最好做为空判断,否则有可能会出现空指针的异常,当前界面没有控件获取焦点,则getCurrentFocus()这个方法得到的是一个null.

1.3K20

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开发之如何自定义数字键盘详解

除此之外,我们创建一个函数attachTo(EditText)将EditText与我们自定义的键盘绑定 fun attachTo(editText: EditText) { //如果editText与上次设置的是同一个对象...Log.e(TAG, "attachTo") //根据焦点及点击监听,来显示或者隐藏键盘 onFoucsChange() //隐藏系统键盘 hideSystemSoftKeyboard() //显示自定义键盘...hasFocus && mKeyBoardView.visibility == View.VISIBLE) { //如果当前失去较大,并且当前在键盘正在显示,则隐藏 mKeyBoardView.visibility...再次点击, // 焦点改变函数不会回调,所以在此判断如果隐藏就显示 if (mKeyBoardView.visibility == View.GONE) { mKeyBoardView.visibility...调用hideSoftKeyboard函数隐藏键盘,并执行隐藏动画,动画的xml文件就不在贴出了。

2.9K21

Android点击EditText文本框之外任何地方隐藏键盘的解决办法

1,实现方法一:通过给当前界面布局文件的父layout设置点击事件(相当于给整个Activity设置点击事件),在事件里进行键盘隐藏 <LinearLayout xmlns:android="http:...imm.hideSoftInputFromWindow(v.getWindowToken(), 0); break; } } 这样就可以完美的解决了输入框<em>外</em>的<em>隐藏</em>效果...2,实现思路二:通过dispatchTouchEvent每次ACTION_DOWN事件中动态判断非<em>EditText</em>本身区域的点击事件,然后在事件中进行屏蔽。...= null && (v instanceof <em>EditText</em>)) { int[] leftTop = { 0, 0 }; //获取输入框当前的location...&& event.getY() > top && event.getY() < bottom) { // 点击的是输入框区域,保留点击<em>EditText</em>

1.5K80

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菜单的定义及ActionBar的实现

); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.edit); } //当用户单击menu...order=1的菜单项比order=2的要靠上。 第四个参数是title,对应菜单项的标题。 各个菜单项都对应一系列的setter方法,顾名思义即可。...如果菜单项被单击后需要有自己的实现,则必须重写onOptionsItemSelected()方法,该方法会传入已经创建完毕的menuItem项。...下面介绍如何在XML中定义选项菜单: 要在XML文件中定义菜单,首先需要在资源文件中创建一个名为menu的文件夹; 然后再在其中创建xml文件: ?...“withText”也就是显示按钮跟随文字。但文字一般不显示出来,用户如果长按按钮,则会显示其对应的title。 ” always”与”never”相对应。

1.1K20

Android开发常用的知识点

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

2.5K10

Android EditText监听回车键并处理两次回调问题

前言 我们都知道,在登面,搜索等等有EditText控件的界面上,当用户输入完内容后,点击回车键执行逻辑会有非常好的用户体验,所以今天我们来学习如何监听EditText监听回车键并处理监听发生了两次回调问题...代码 首先我们在xml布局中添加一个要监听的EditText <?xml version="1.0" encoding="utf-8"?...android:layout_width="match_parent" android:layout_height="wrap_content" / </LinearLayout 要想监听到软键盘按下什么键...两次回调解答并解决 我们都知道,当我们按某个键的时候,键盘有按下和抬起两个操作,所以这里两次回调就是回车按下,回调一次,回车键抬起,回调一次。...actionSearch : 一个放大镜 actionSend : Send actionNext : Next actionDone : Done,隐藏键盘,即使不是最后一个文本输入框 以上就是本文的全部内容

1.6K31

Android使用Activity实现简单的可输入对话框

这里的效果可以细分为四点: 点击底部的按钮之后会弹出对话框,对话框在布局的底部; 对话框中有输入框EditText,可以输入内容; 对话框弹出后EditText会自动获取焦点,弹出软键盘; 软键盘会把对话框顶上去...一开始我想到的是PopupWindow,但是由于里面有EditText,与软键盘交互起来很是头疼,于是改用了Activity。这样一来我们就可以像用Activity一样使用这个对话框,方便多了。...下面介绍两种方法: 3.1、使用InputMethodManager类显示软键盘 我们平时要让某个EditText获得焦点自动弹出软键盘可以这样写: InputMethodManager inputManager...其实软键盘没有自动弹出就是它搞的鬼,它表示一般情况下软键盘都是隐藏的。我们改成另外一个属性:stateVisible,它表示软键盘通常是可见的。 再来运行一下,软键盘就如期而至了。...后来我还想过给对话框增加自定义的动画效果,但是退出的动画始终没有设置成功,所以如果有读者实现了,欢迎交流学习。

2.6K20
领券