Android - 滚动或平移网站如 Google 地图时刷新 WebView

问题描述

您好,过去 2 天一直在调查这个问题。我在 SwipeRefreshLayout 中有一个 Web 视图,它几乎适用于每个网站,但在尝试 maps.google.com 时,我遇到了这种奇怪的情况,即滚动地图会触发 SwipeRefresh 并且页面不断重新加载()。

非常感谢在这方面的任何帮助。示例代码如下。

select user_id,max(grade) filter(where grade = 'k') is not null as teaches_grade_k,max(grade) filter(where grade = '1') is not null as teaches_grade_1,max(grade) filter(where grade = '2') is not null as teaches_grade_2,max(grade) filter(where grade = '3') is not null as teaches_grade_3,max(grade) filter(where grade = '4') is not null as teaches_grade_5
       max(grade) filter(where grade = '5') is not null as teaches_grade_5
from users
group by user_id;       

布局文件是这样的

class MainActivity : AppCompatActivity() {
lateinit var browser: WebView
lateinit var swipeLayout : SwipeRefreshLayout
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
     browser = findViewById<View>(R.id.webview) as WebView
    swipeLayout = findViewById<View>(R.id.swipeRefreshLayout) as SwipeRefreshLayout

    browser.settings.loadsImagesAutomatically = true;
    browser.settings.javaScriptEnabled = true;
    browser.scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY;

    browser.loadUrl("https://www.google.com/maps");
    swipeLayout.setonRefreshListener {
        browser.reload()
        swipeLayout.isRefreshing=false
    }
    browser.webViewClient = (object : WebViewClient() {
       override fun onPageFinished(view: WebView,url: String) {
           Log.d("browser",browser.scrollY.toString())
        }
    })


}

问题的gif附在下面

Issue

预期结果:向下滚动应该只移动地图

实际结果:SwipetoRefresh 被触发,导致网页刷新。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)