重新加载完成后,如何仅摆脱刷新窗口小部件

艾米

在我的应用程序中,我在Kotlin中添加了向下滑动重新加载,并且可以正常工作。向下滑动时,它将显示刷新小部件,然后返回并开始刷新页面。但自从刷新网站以来,我的应用需要花几秒钟来刷新。有人知道如何仅在刷新完成后才使刷新窗口小部件备份吗?

这是我的代码:

MainActivity.kt:

import android.annotation.SuppressLint
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.view.View
import android.webkit.PermissionRequest
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {
    val FINE_LOCATION_RQ = 101
    val CAMERA_RQ = 102
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        refreshApp()
        webViewSetup()
    }

    @SuppressLint("SetJavaScriptEnabled")
    private fun webViewSetup() {
        val wb_webView = findViewById<View>(R.id.wb_webView) as WebView
        wb_webView.settings.javaScriptEnabled = true
        wb_webView.settings.domStorageEnabled = true
        wb_webView.webViewClient = WebViewClient()
        wb_webView.loadUrl("https://google.com/")
    }

    private fun refreshApp() {
        val webView = findViewById<View>(R.id.wb_webView) as WebView
        val swipeToRefresh = findViewById<SwipeRefreshLayout>(R.id.swipeToRefresh)
        swipeToRefresh.setOnRefreshListener {
            webView.loadUrl( "javascript:window.location.reload( true )" )
            swipeToRefresh.isRefreshing = false
        }
    }

    override fun onBackPressed() {
        val wb_webView = findViewById<View>(R.id.wb_webView) as WebView
        if (wb_webView.canGoBack()) {
            wb_webView.goBack()
        } else {
            super.onBackPressed()
        }
    }
}

activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/swipeToRefresh"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <WebView
            android:id="@+id/wb_webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

</RelativeLayout>

有人知道如何做到这一点吗?

萨达特

您可以覆盖WebClient中的onPageFinished,例如

    mWebView.setWebViewClient(object : WebViewClient() {
        override fun onPageFinished(view: WebView, url: String) {
            swipeToRefresh.isRefreshing = false
        }
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在PyQt5中刷新窗口中的窗口小部件时是否需要重新加载整个窗口?

来自分类Dev

在新窗口加载完成后,我该如何执行某些操作?

来自分类Dev

Redux如何在Ajax完成后打开新窗口

来自分类Dev

当前小部件完成加载后如何执行方法?

来自分类Dev

请求完成后重新加载表

来自分类Dev

文件上传完成后如何将uploadcare小部件重置为原始状态

来自分类Dev

异步接收器完成后如何更新小部件?

来自分类Dev

文件上传完成后如何将uploadcare小部件重置为原始状态

来自分类Dev

如何刷新窗口

来自分类Dev

外部窗口小部件加载完成时执行JS命令

来自分类Dev

从有状态的子级调用时Flutter setState()不刷新窗口小部件

来自分类Dev

打开新窗口后强制按钮重新加载页面

来自分类Dev

页面加载完成后打开css弹出窗口

来自分类Dev

THREE.js如何在刷新之前保存场景并在刷新页面完成后加载它?

来自分类Dev

单击按钮刷新后如何刷新小部件列表视图?

来自分类Dev

如何在状态更改后强制窗口小部件重新创建自己?

来自分类Dev

使用模式视图完成后重新加载UICollectionView

来自分类Dev

CSS3 Animation完成后重新加载javascript

来自分类Dev

jqrid重新加载完成后调用函数

来自分类Dev

通知显示完全完成后重新加载页面

来自分类Dev

Ajax请求在循环内,完成后重新加载页面

来自分类Dev

任务完成后 Gulp 重新加载浏览器

来自分类Dev

调用SetState()后Flutter无法重新构建窗口小部件

来自分类Dev

用户提交无效输入后如何重新加载Google Recaptcha小部件

来自分类Dev

重新加载无状态小部件后,我应该如何更新?

来自分类Dev

ios 14小部件:更改UserDefaults后如何重新加载时间线

来自分类Dev

如何摆脱小部件边框?

来自分类Dev

Ajax上传完成后如何刷新当前页面

来自分类Dev

编辑引导程序模板,动态添加jarvisWidget,并在页面已全部加载后重新生成窗口小部件

Related 相关文章

  1. 1

    在PyQt5中刷新窗口中的窗口小部件时是否需要重新加载整个窗口?

  2. 2

    在新窗口加载完成后,我该如何执行某些操作?

  3. 3

    Redux如何在Ajax完成后打开新窗口

  4. 4

    当前小部件完成加载后如何执行方法?

  5. 5

    请求完成后重新加载表

  6. 6

    文件上传完成后如何将uploadcare小部件重置为原始状态

  7. 7

    异步接收器完成后如何更新小部件?

  8. 8

    文件上传完成后如何将uploadcare小部件重置为原始状态

  9. 9

    如何刷新窗口

  10. 10

    外部窗口小部件加载完成时执行JS命令

  11. 11

    从有状态的子级调用时Flutter setState()不刷新窗口小部件

  12. 12

    打开新窗口后强制按钮重新加载页面

  13. 13

    页面加载完成后打开css弹出窗口

  14. 14

    THREE.js如何在刷新之前保存场景并在刷新页面完成后加载它?

  15. 15

    单击按钮刷新后如何刷新小部件列表视图?

  16. 16

    如何在状态更改后强制窗口小部件重新创建自己?

  17. 17

    使用模式视图完成后重新加载UICollectionView

  18. 18

    CSS3 Animation完成后重新加载javascript

  19. 19

    jqrid重新加载完成后调用函数

  20. 20

    通知显示完全完成后重新加载页面

  21. 21

    Ajax请求在循环内,完成后重新加载页面

  22. 22

    任务完成后 Gulp 重新加载浏览器

  23. 23

    调用SetState()后Flutter无法重新构建窗口小部件

  24. 24

    用户提交无效输入后如何重新加载Google Recaptcha小部件

  25. 25

    重新加载无状态小部件后,我应该如何更新?

  26. 26

    ios 14小部件:更改UserDefaults后如何重新加载时间线

  27. 27

    如何摆脱小部件边框?

  28. 28

    Ajax上传完成后如何刷新当前页面

  29. 29

    编辑引导程序模板,动态添加jarvisWidget,并在页面已全部加载后重新生成窗口小部件

热门标签

归档