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

本文介绍了Android系统中EditText控件光标的隐藏与显示设置,包括使用`android:cursorVisible`和`android:textCursorDrawable`属性,以及如何在点击时显示光标。同时,文章讲解了软键盘的显示与隐藏策略,详细列举了`android:windowSoftInputMode`的不同取值及其效果,如`stateVisible|adjustPan`等,帮助开发者更好地控制软键盘的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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>.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值