0

我有一个基于 webview 的全屏 Android 应用程序,在 COSU 模式下运行。每次我使用 HTML5 选择颜色时<input type="color"/>,隐藏的操作栏都会再次显示,我无法隐藏它们,除非我关闭应用程序并再次打开它。

有什么办法可以避免每次使用颜色选择器时出现条形图?我想出的唯一解决方案是使用 javascript 接口在 Android 中调用函数/方法以在每次使用颜色选择器时隐藏条,但似乎太棘手/复杂。应该有更好的方法......还是没有?

有任何想法吗?

提前致谢


编辑:

我如何隐藏酒吧?我将这个函数称为我在 Activity 中定义的函数:

private fun hideBars() {
    actionBar?.hide()
    this.supportActionBar?.hide()
}

另外,使用这个将活动设置为全屏

private fun setFullScreen() {
    window.decorView.systemUiVisibility =
        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
                View.SYSTEM_UI_FLAG_FULLSCREEN or
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
}
4

1 回答 1

0

我已经等待了几天的回复,但看起来这不是一个很常见的问题,或者没有比使用 javascript 界面更清洁的解决方案。

最后,我选择在单击 时使用 javascript 界面调用函数<input type="color"/>。这是我使用的功能:

class WebAppInterface {

    private val context : Context

    ...


    constructor(context : Context) {
        this.context = context
        ...
    }

    @JavascriptInterface
    fun resetScreen() {

        val activity = context as MainActivity
        activity.runOnUiThread(Runnable {
            fun run() {
                activity.hideBars()
                activity.setFullScreen()
            }
        });

    }

}

请注意,我必须使用Activity.runOnUiThread(). 否则,Android 友好地回答我没有在 UI 线程中运行代码。

我将此标记为答案,但是如果将来有人找到更清洁的方法来解决此问题,我将对其进行审查。否则,我希望这可以帮助某人

于 2020-08-18T10:30:25.930 回答