Android:请求关注通过WindowManager添加的视图(WebView)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:请求关注通过WindowManager添加的视图(WebView)相关的知识,希望对你有一定的参考价值。

当我的应用程序没有在前台运行时,我在服务中显示webView作为alertDialog,因此,我的webView通过WindowManager.addView()方法附加到屏幕。

webView有一个input字段,我希望用户可以访问。不幸的是,当用户点击input字段时,它没有显示用户允许输入的键盘。

我的webViewcardView里面,他们的参数如下:

public WindowManager.LayoutParams getParamsForOpenWebView() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_PHONE,
                 WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                        | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                        | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                PixelFormat.TRANSLUCENT);

        params.gravity = Gravity.START | Gravity.TOP;
        params.x = left;
        params.y = top;

        return params;
    } else {
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
                 WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                        | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                        | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                PixelFormat.TRANSLUCENT);


        params.gravity = Gravity.START | Gravity.TOP;
        params.x = left;
        params.y = 200;

        return params;
    }
}

如果我将手机连接到笔记本电脑并使用笔记本电脑键盘为输入字段添加输入,它可以正常工作,但只是手机上的键盘没有弹出。

此外,输入在webView内部,因此我不能使用View.requestFocus()来获得焦点,这与EditText的情况不同。

我真的很感激有关如何请求焦点到webView允许输入的任何帮助。

答案

一段时间后,我自己找到了问题的答案。

我尝试了很多不同标志的组合,但都没有用,除非我尝试过

WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                    | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
                    | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS

这些标志给出了我想要的结果,并希望它可以帮助经历同样的事情。

以上是关于Android:请求关注通过WindowManager添加的视图(WebView)的主要内容,如果未能解决你的问题,请参考以下文章

Android N 7.1.1 锁屏之上显示Toast

如何通过 http 请求在 Instagram 中获取关注者和关注列表

Android通过请求网络获取图片资源

Xamarin 窗体:Windows 10 通用应用程序阻止屏幕截图

如何通过改造 Android 提出请求

重识OkHttp——更深入了解如何使用