Android EditText无法自动弹出软件盘

最近项目中有一个需求是,一打开某个界面,界面中的EditText就可以自动弹出软件盘,本来以为只有一个控件的界面,EditText会自己弹出来,不用做任何处理,但是没想到尝试了各种方式都不能自动弹出来。

目前解决的思路如下,首先EditText使用的是一个自定义的控件,可能会存在焦点没有自动获取的问题,并且使用InputMethodManager在后期做隐藏操作时是没有问题的,所以InputMethodManager的showSoftInput理论上也应该没有问题。

尝试延时显示软件盘,给控件绘制完全的时间,但是结果依旧存在不弹出的情况,然后在onResume中添加SOFT_INPUT_STATE_ALWAYS_VISIBLE解决了这个问题。

    mEditInfo.requestFocus();
    // Sets whether the soft input method will be made visible when this TextView gets focused. The default is true.
    mEditInfo.setShowSoftInputOnFocus(true);
    // auto display softInput after view is completely created.
    mEditInfo.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager imm= (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(mEditInfo, 0);
            }
    }, 1000);

    @Override
    public void onResume() {
        super.onResume();
        getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
    }

    @Override
    public void onPause() {
        super.onPause();
        getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值