【问题标题】:Prevent soft keyboard from being dismissed防止软键盘被关闭
【发布时间】:2016-06-01 20:21:22
【问题描述】:

关于如何以编程方式显示/隐藏软键盘有很多问题。

但是,众所周知,android 后退按钮会导致键盘被关闭。 有没有办法防止用户按下后退按钮关闭键盘?

我试图捕获后退按钮,但是当键盘显示时,我的活动中的 onKeyDown 不会在按下后退键并且软键盘可见时被调用。

任何建议将不胜感激。

【问题讨论】:

  • 这似乎是适度的反用户。为什么要这样做?

标签: android keyboard


【解决方案1】:

我找到了解决方案:

public class KeyBoardHolder extends EditText {
    public KeyBoardHolder(Context context) {
        super(context);
    }

    public KeyBoardHolder(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public KeyBoardHolder(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public KeyBoardHolder(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return false;
    }
}

这可以防止键盘被返回按钮关闭。

【讨论】:

    【解决方案2】:

    我通过以下两种方法做到了:

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK)     
        {
            ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
                    (InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
        }
        return super.onKeyUp(keyCode, event);
    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK)     
        {
            ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput
                    (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
        }
        return super.onKeyDown(keyCode, event);
    }
    

    【讨论】:

    • 不起作用,键盘继续隐藏在返回按钮上
    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2015-02-27
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多