Android 如何避免窗口视图越过键盘?

Android 如何避免窗口视图越过键盘?,android,android-windowmanager,Android,Android Windowmanager,我在底部有窗口视图,当我点击任何编辑文本时,键盘打开,但在窗口视图下方(窗口视图位于键盘上方)。 尝试使用adjustPan、adjustResize。 尝试根据键盘可见性使用显示隐藏视图,但出现安全异常 mTabParams = new WindowManager.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONT

我在底部有窗口视图,当我点击任何编辑文本时,键盘打开,但在窗口视图下方(窗口视图位于键盘上方)。 尝试使用adjustPan、adjustResize。 尝试根据键盘可见性使用显示隐藏视图,但出现安全异常

 mTabParams = new WindowManager.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT |
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
                        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSPARENT);

        mTabParams.format = PixelFormat.TRANSLUCENT;
        mTabParams.height = TAB_BAR_HEIGHT;
        mTabParams.gravity = Gravity.BOTTOM;
        mWindowmanager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
        mWindowmanager.addView(mTabbarLayout, mTabParams);
这对我很有用:

params = new WindowManager.LayoutParams( 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.WRAP_CONTENT, 
    WindowManager.LayoutParams.TYPE_PRIORITY_PHONE, 
    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
    WindowManager.LayoutParams.FLAG_SPLIT_TOUCH | 
    WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM, 
    PixelFormat.TRANSLUCENT);

这将添加的视图放在键盘后面。

int TYPE\u SYSTEM\u OVERLAY Window TYPE:SYSTEM OVERLAY windows,需要显示在所有其他窗口的顶部。
因此,请尝试删除该标志,看看是否有帮助。特别是我发现,需要使用的标志是flag\u NOT\u FOCUSABLE\flag\u ALT\u FOCUSABLE\IM,根据您的具体需要,其他选项是可选的