Android输入法的显示和隐藏

原创 2015年07月10日 11:36:46

Android中使EditText失去焦点,edittext禁止弹出键盘

在我们的应用中,有时候一进入一个页面, EditText默认就会自动获取焦点。弹出输入法框,用户体验很不好,

那么如何取消这个默认行为呢?

ps:这篇文字是一年前写的,现在有网友再问这个问题,我进行重新编辑--2014.05.07,目前有更好的办法,第一种方法局限性很强,大家可以使用第二种方法

 

第一种方法:.在网上找了好久,有点监听软键盘事件的方法,有调用 clearFouse()方法,但是测试了都不行!在对应的 xml中也找不到相应的属性可以关闭这个默认行为。

后来研究了一下,在其父控件下,添加如下的属性,就可以完美解决:

android:focusable="true"   
android:focusableInTouchMode="true"

举例如下:

复制代码
<LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
         android:focusable
="true" android:focusableInTouchMode="true"
        >
        
        <EditText 
            android:id="@+id/et_enter_msg_content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            />
        
        <Button 
            android:id="@+id/sent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/send"
            />
        
        
    </LinearLayout>


复制代码

第二种方法:直接关闭输入法

1
2
3
4
5
6
7
8
private void closeInputMethod() {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    boolean isOpen = imm.isActive();
    if (isOpen) {
        // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//没有显示则显示
        imm.hideSoftInputFromWindow(mobile_topup_num.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

 调用这个方法体就行了,具体if语句里面的几个参数,我就借用一个网友的日志来写把(在此感谢)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)
  
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 
  
2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)
  
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED); 
[java] view plaincopy
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘 
 
3、调用隐藏系统默认的输入法
  
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  (WidgetSearchActivity是当前的Activity) 
 
4、获取输入法打开的状态
  
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于Android平台显示隐藏软键盘输入法的方法总结

文章总结了在Android开发中如何动态的显示隐藏软键盘输入法的方法
  • yeah0126
  • yeah0126
  • 2016年06月15日 22:10
  • 2091

Android如何控制系统的输入法显示和隐藏

当点击某个View对输入法进行操作:显示或者隐藏 // toogle输入法 public static void hidenOrShowInputMethod(View view,Context ...
  • liuyi1207164339
  • liuyi1207164339
  • 2015年10月24日 17:18
  • 1602

Android中EditText隐藏/自动弹出输入法的问题

有些时候我们的应用需要在EditText聚焦时自动弹出输入法,或者隐藏输入法,关于输入法弹出,一般不会有什么问题。但是,有一些情况输入法是没发自动弹出的,比如弹出的对话框里有edittext,介绍一些...
  • dzsw0117
  • dzsw0117
  • 2016年05月13日 18:04
  • 7187

android 输入法显示和隐藏监听

一、应用场景 在Android程序开发中,edit获取焦点是,输入法可以将布局自动顶上去。有一些特别点的需求,正常布局和顶上去的布局会有少许改变,这个时候就需要监听输入法的状态。 二、产生的问题 ...
  • shuliwuflying
  • shuliwuflying
  • 2017年08月15日 11:15
  • 312

Android windowSoftInputMode软键盘显示和隐藏的监听和实现

现在在公司,其实今天不用加班,但留下来写篇博客。今天做了一个关于聊天输入框和表情框的Demo,主要是为了使用软件盘的显示和隐藏。下面是效果图,(只是为了弄清原理,界面比较丑)             ...
  • u010852801
  • u010852801
  • 2015年01月27日 18:52
  • 1985

android中控件焦点问题和输入法的显示与隐藏

一、焦点问题   开发中常遇到的问题,特别是列表类控件,
  • u011150924
  • u011150924
  • 2017年05月12日 16:53
  • 721

[经典技巧]android 如何监听输入法是否弹出或隐藏,监听手机是否是全屏切换

android 如何监听输入法是否弹出或隐藏,监听手机是否是全屏切换 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|WindowManager.Layou...
  • mingli198611
  • mingli198611
  • 2015年08月05日 22:34
  • 5563

Android 监听输入法隐藏与显示状态切换

监听输入法弹起状态
  • wj948
  • wj948
  • 2015年12月23日 10:40
  • 1940

Android自定义软键盘输入法,隐藏系统输入法显示光标的实现

android实现自定义软键盘,先上图看效果,效果基本上是仿ios输入法实现的
  • qq_25804863
  • qq_25804863
  • 2015年09月23日 20:05
  • 6899

Android强制隐藏输入法键盘

Android强制隐藏键盘
  • github_34123799
  • github_34123799
  • 2017年03月22日 13:44
  • 995
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android输入法的显示和隐藏
举报原因:
原因补充:

(最多只允许输入30个字)