How do I detect if software keyboard is visible on Android Device or not?

前端 未结 30 1864
情书的邮戳
情书的邮戳 2020-11-22 10:59

Is there a way in Android to detect if the software (a.k.a. \"soft\") keyboard is visible on screen?

30条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-22 11:52

    a may be using :

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    
        Log.d(
        getClass().getSimpleName(), 
        String.format("conf: %s", newConfig));
    
        if (newConfig.hardKeyboardHidden != hardKeyboardHidden) {
            onHardwareKeyboardChange(newConfig.hardKeyboardHidden);
    
            hardKeyboardHidden = newConfig.hardKeyboardHidden;
        }
    
        if (newConfig.keyboardHidden != keyboardHidden) {
            onKeyboardChange(newConfig.keyboardHidden);
    
            keyboardHidden = newConfig.hardKeyboardHidden;
        }
    
    }
    
    public static final int KEYBOARDHIDDEN_UNDEFINED = 0;
    public static final int KEYBOARDHIDDEN_NO = 1;
    public static final int KEYBOARDHIDDEN_YES = 2;
    public static final int KEYBOARDHIDDEN_SOFT = 3;
    
    //todo
    private void onKeyboardChange(int keyboardHidden) {
    
    }
    
    //todo
    private void onHardwareKeyboardChange(int hardKeyboardHidden) {
    
    }
    

提交回复
热议问题