android - 我正在使用带有 WebView 的 LinearProgressIndicator 来显示网页渲染进度,当进度动画达到 100 时如何隐藏它?
问题描述
我正在使用带有 WebView 的 LinearProgressIndicator 来显示网页渲染进度。为此,我正在使用 WebChromeClient 的 onProgressChanged (WebView view,int newProgress),如下所示:
@Override
public void onProgressChanged(WebView view, final int newProgress) {
super.onProgressChanged(view, newProgress);
if (newProgress == 100) {
indicator.setProgressCompat(100,true);
//todo implement listener to hide progress indicator
} else {
indicator.setProgressCompat(newProgress,true);
}
}
现在考虑这种情况:进度指示器的当前进度 = 70,我们必须设置的 newProgress 是 100。所以,我想在动画完成后隐藏进度指示器。如果我使用 progressBar.hide(); 隐藏它 在 indicator.setProgressCompat(100,true); 然后它会被隐藏,但是有一个问题,即使它的动画正在将其进度从 70 更改为 100,它也会很快被隐藏。我不希望这种情况发生,我想在其动画从 70 到 100 的动画结束时隐藏进度指示器。有没有听众可以做到这一点?
解决方案
简单的方法就是在特定时间后延迟你的隐藏动作。
int delayTime = 2000;
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
indicator.hide();
}
}, delayTime);
使用您最好的延迟时间值进行测试。
推荐阅读
- javascript - 使用 include/indexOf 检查重复项在 Google App Script 中不起作用
- vue.js - 当我点击任何一个组件时打开所有组件
- azure - 持久函数异常:“无法找到用于此绑定的 Azure 存储连接字符串
- google-apps-script - 如何将电子表格 ID 或 URL 作为参数传递给应用程序脚本中的函数?
- java - 三个 Ignite 缓存的 SQL Union All
- python - Google Colab 中的“/bin/bash: conda: command not found”
- c - 什么用于医疗设备的 GUI 库?
- java - Java JVM 是否像使用 String 一样重用自定义类的相同不可变实例?
- c# - 在 Json C# 中创建 Json 表
- android - 将 Android Studio 升级到北极狐后,Gradle 同步失败