我正在使用Android Studio制作应用程序,并且我添加了下拉菜单以刷新应用程序中的url,并且之后我的进度条不起作用之后,我的意思是当我下拉默认进度条显示但该屏幕之后仅显示空白页时直到加载了url。这是我的xml文件
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/webview"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_above="@+id/adView" />
</ScrollView>
<ProgressBar
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:id="@+id/progressBar"/>
在Java文件中,我使用它
myWebView.loadUrl("http://m.wahstatus.com/ws/english-status/?orderby=rand");
WebSettings webSettings = myWebView.getSettings();
myWebView.getSettings().setLoadWithOverviewMode(true);
webSettings.setJavaScriptEnabled(true);
swipeView.setColorScheme(android.R.color.holo_blue_dark,android.R.color.holo_blue_light, android.R.color.holo_green_light,android.R.color.holo_green_dark);
swipeView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener()
{
@Override
public void onRefresh()
{
swipeView.setRefreshing(true);
( new Handler()).postDelayed(new Runnable()
{
@Override
public void run()
{
swipeView.setRefreshing(false);
myWebView.loadUrl("http://m.wahstatus.com/ws/english-status/?orderby=rand");
}
}, 1000);
}
});
myWebView.setWebViewClient(new WebViewClient() {
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
findViewById(R.id.progressBar).setVisibility(View.GONE);
}
页面加载的进度栏不起作用
答案 0 :(得分:2)
这是因为您假设网页将在一秒钟内加载,
建议,异步读取并同步
解决方案:您有页面完成和页面启动的回调。根据您的需要使用它们。
第二,看来您的根目录布局是SwipeRefreshLayout
。它将带有其默认进度条,为什么要添加一个新进度条?
答案 1 :(得分:0)
您应该添加一个webchromeClient()
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
findViewById(R.id.progressBar).setProgress(progress * 100); //Make the bar disappear after URL is loaded
});