就是在配置文件里对应activity加上这句:android:windowSoftInputMode="stateVisible|adjustResize"

     设置之后 

android:windowSoftInputMode属性介绍

android:windowSoftInputMode

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘
它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”值的组合。在任一组设置多个值——多个”state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如:

在这设置的值(除"stateUnspecified"和"adjustUnspecified"以外)将覆盖在主题中设置的值

各值的含义:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

关于android软键盘隐藏总结

1>软键盘的状态——隐藏或显示。

一:自动弹出软键盘

  1. edit = (EditText)findViewById(R.id.EditText01);  
  2.         edit.setVisibility(EditText.GONE);  
  3.           
  4.         Timer timer = new Timer();  
  5.         timer.schedule(new TimerTask(){  
  6.   
  7.             @Override  
  8.             public void run() {  
  9.                 InputMethodManager m = (InputMethodManager)  
  10.                 edit.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);  
  11.                 m.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);  
  12.                 Toast.makeText(Key.this"show", Toast.LENGTH_SHORT).show();  
  13.             }  
  14.               
  15.         }, 1000);  

二:软键盘

              Activity中设置:

Android:windowSoftInputMode="stateUnspecified",默认设置:软键盘的状态(隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。                                     

   "stateUnchanged", 软键盘被保持上次的状态。 "stateHidden", 当用户选择该Activity时,软键盘被隐藏。                                       

"stateAlwaysHidden", 软键盘总是被隐藏的。

"stateVisible",. 软键盘是可见的。                                      

  "stateAlwaysVisible", 当用户选择这个Activity时,软键盘是可见的。

"adjustUnspecified", . 它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间, 或是否窗口上的内容得到屏幕上当前的焦点是可见的。系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。 如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。这个是主窗口默认的行为设置。也就是说, 系统自动决定是采用平移模式还是压缩模式,决定因素在于内容是否可以滚动。                                        "adjustResize", (压缩模式) 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。 "adjustPan"] > (平移模式:当输入框不会被遮挡时,该模式没有对布局进行调整,然而当输入框将要被遮挡时, 窗口就会进行平移。也就是说,该模式始终是保持输入框为可见      . . .

三:隐藏软键盘:         

EditText edit=(EditText)findViewById(R.id.edit);       InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);       imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

4.EditText默认不弹出软件键盘

方法一:

在AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden

例如:

   
 Android:label="@string/app_name"         Android:windowSoftInputMode="adjustUnspecified|stateHidden"         Android:configChanges="orientation|keyboardHidden">                                

方法二:

让EditText失去焦点,使用EditText的clearFocus方法

例如:EditText edit=(EditText)findViewById(R.id.edit);        

edit.clearFocus();

方法三:

强制隐藏Android输入法窗口

例如:EditText edit=(EditText)findViewById(R.id.edit);      

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);       imm.hideSoftInputFromWindow(edit.getWindowToken(),0);

5.EditText始终不弹出软件键盘

例:EditText edit=(EditText)findViewById(R.id.edit); 

 edit.setInputType(InputType.TYPE_NULL);

更多相关文章

  1. android 数字键盘使用
  2. 【android 权限】
  3. android onKeydown
  4. Android(安卓)PopupWindow简单使用
  5. Android悬浮窗口
  6. Android(安卓)键盘设计
  7. Android壁纸机制(Android(安卓)Q与老版本对比)
  8. Android之Window类简介
  9. (转) Android的Window类

随机推荐

  1. 如何开始我们的 DevOps 转型之旅?
  2. Flink计算PV,UV的案例及问题分析
  3. 轻量化 Jenkins 最佳实践
  4. 浪尖刷过leetcode的题
  5. 计算文本算式,其实很简单
  6. Flink通过异步IO实现redis维表join
  7. 最简单的全年个税计算模板,拿走不谢
  8. 《数据持久化与鸿蒙的分布式数据管理能力
  9. 移动办公服务的未来之路
  10. 新冠肺炎:新增确诊和治愈病例走势图