软键盘设置

来源:互联网 发布:女武神升级数据 编辑:程序博客网 时间:2024/05/17 10:08

使用EditText进行文本输入时,若不进行特殊的设置,使用Android自带的软键盘,该软键盘会占用整个界面,那么,如何让键盘只占用屏幕的一部分呢? 

Xml代码  
  1. <EditText   
  2.     android:id="@+id/text1"   
  3.     android:layout_width="150dip"   
  4.     android:layout_height="wrap_content"  
  5.     android:imeOptions="flagNoExtractUi"/>  

 使用android:imeOptinos可对Android自带的软键盘进行一些界面上的设置:

Java代码  
  1. android:imeOptions="flagNoExtractUi"  //使软键盘不全屏显示,只占用一部分屏幕  
  2. 同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键  
  3. android:imeOptions="actionNone"  //输入框右侧不带任何提示  
  4. android:imeOptions="actionGo"    //右下角按键内容为'开始'  
  5. android:imeOptions="actionSearch"  //右下角按键为放大镜图片,搜索  
  6. android:imeOptions="actionSend"    //右下角按键内容为'发送'  
  7. android:imeOptions="actionNext"   //右下角按键内容为'下一步'  
  8. android:imeOptions="actionDone"  //右下角按键内容为'完成'   

 同时,可能EditText添加相应的监听器,捕捉用户点击了软键盘右下角按钮的监听事件,以便进行处理。

Java代码  
  1. editText.setOnEditorActionListener(new OnEditorActionListener() {   
  2.         @Override  
  3.         public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {   
  4.             Toast.makeText(MainActivity.this"text2", Toast.LENGTH_SHORT).show();   
  5.             return false;   
  6.         }   
  7.     }); 



软输入法模式选项:
public int softInputMode;

以下选项与输入法模式有关:
软输入区域是否可见。
public static final int SOFT_INPUT_MASK_STATE = 0x0f;

未指定状态。
public static final int SOFT_INPUT_STATE_UNSPECIFIED = 0;

不要修改软输入法区域的状态。
public static final int SOFT_INPUT_STATE_UNCHANGED = 1;

隐藏输入法区域(当用户进入窗口时)。
public static final int SOFT_INPUT_STATE_HIDDEN = 2;

当窗口获得焦点时,隐藏输入法区域。
public static final int SOFT_INPUT_STATE_ALWAYS_HIDDEN = 3;

显示输入法区域(当用户进入窗口时)。
public static final int SOFT_INPUT_STATE_VISIBLE = 4;

当窗口获得焦点时,显示输入法区域。
public static final int SOFT_INPUT_STATE_ALWAYS_VISIBLE = 5;

窗口应当主动调整,以适应软输入窗口。
public static final int SOFT_INPUT_MASK_ADJUST = 0xf0;

未指定状态,系统将根据窗口内容尝试选择一个输入法样式。
public static final int SOFT_INPUT_ADJUST_UNSPECIFIED = 0x00;

当输入法显示时,允许窗口重新计算尺寸,使内容不被输入法所覆盖。
不可与SOFT_INPUT_ADJUSP_PAN混合使用;如果两个都没有设置,系统将根据窗口内容自动设置一个选项。
public static final int SOFT_INPUT_ADJUST_RESIZE = 0x10;

输入法显示时平移窗口。它不需要处理尺寸变化,框架能够移动窗口以确保输入焦点可见。
不可与SOFT_INPUT_ADJUST_RESIZE混合使用;如果两个都没有设置,系统将根据窗口内容自动设置一个选项。
public static final int SOFT_INPUT_ADJUST_PAN = 0x20;

当用户转至此窗口时,由系统自动设置,所以你不要设置它。
当窗口显示之后该标志自动清除。
public static final int SOFT_INPUT_IS_FORWARD_NAVIGATION = 0x100;

原创粉丝点击