Android点击EditText禁止弹出软键盘

文章介绍了在Android开发中如何阻止EditText获取焦点时弹出系统键盘,而是显示自定义键盘的三种方法。作者提到其中一种方法对其代码生效,即通过设置ShowSoftInputOnFocus和隐藏软键盘监听。其他方法,如设置Window软输入模式或在Manifest中配置,对作者的特定情况无效,可能由于文本监听和焦点设置的交互影响。

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

今天做了一个点击EditText获取焦点,不弹出设备系统键盘,只弹出自定义键盘,在网上能查到很多实现这一功能的方法,试了很多,只有一种对我来说是好用的,做个记录方便以后使用
方法一:这个对我来说好用的,也是唯一一个好用的,还会多分享几个网上说的一些好用的办法,我都试过但对于我的代码来说不好用

   editTextView.setShowSoftInputOnFocus(false);
   editTextView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {

 InputMethodManager imm = (InputMethodManager) getSystemService(getApplicationContext().INPUT_METHOD_SERVICE);
 imm.hideSoftInputFromWindow(editTextView.getWindowToken(), 0);

            }
        });

方法二:在onCreat中添加

  getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

方法三:在Mainfest对应的activity下添加

  android:windowSoftInputMode="stateHidden"

或者添加

 android:configChanges="orientation|keyboardHidden"

这些是网上整理的一些大家好用的方法,我想了一下,对我来说不好用可能是因为我在监听输入之后每次都手动在文字后面添加了光标,并且设置了焦点,所以才导致从根部无法解决问题,只能每次监听并强制隐藏

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值