关于Android系统的光标和软键盘(持续更新中)

来源:互联网 发布:java jdk 1.7 中文版 编辑:程序博客网 时间:2024/05/23 17:11

光标和软件盘,大家都很熟悉,这里不做介绍,简单介绍他们的一些实用小技巧,希望能帮到需要的朋友。

1.光标的隐藏和显示

  在Android中如果有实用EditText控件,就会涉及到光标的显示和隐藏:

  android:cursorVisible = "false";//光标隐藏,即使点击EditText光标也不会显示(默认为true)

  android:textCursorDrawable = ”@null“//设置光标的颜色,设置为null,光标颜色和text颜色一样

  如果暂时隐藏光标,点击EditText时,光标出现只需要在EditText的父布局中添加:focusable = ”true“ focusableInTouchMode = ”true“即可

2.软键盘的显示与隐藏:

<1>.在manifest里面在对应的Activity里设置android:windowSoftInputMode=“stateVisible|adjustPan”(具体值可根据需要设置)

   通常有以下常用值:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

<2>.对话框里有EditText输入框,一般会自动弹出软键盘,如果没有自动弹出,可以设置如下:

mEdit_input.setFocusable(true);mEdit_input.setFocusableInTouchMode(true);mEdit_input.requestFocus();//自动弹出软键盘Timer timer = new Timer();timer.schedule(new TimerTask() {    @Override    public void run() {        InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);        imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);    }},350);
上述红色部分,可加可不加主要的是下面两句,延时必须加(具体时间根据自己测试为准),否则会出现弹窗出现时,软键盘消失的现象。

<3>.

0 0