我有一个Android apk,主要是一个访问html5 web 的webview。每次我旋转屏幕时,它都会在重新加载/重新渲染网页时显示一个空白屏幕。由于网页需要通过服务器获取数据,因此可能需要几秒钟的时间。
我只是想知道,是否有一种简单的方法可以在旋转时显示加载图像或徽标图像,而不是空白屏幕?
非常感谢。
您应该使用WebView 规范中描述的WebViewClient回调以及显示ProgressBar类型
style="@android:style/Widget.ProgressBar.Large"
例如。
您的活动应包括以下内容:
private void onCreate(Bundle savedInstanceState){
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(webChromeClient);
spinner = (ProgressBar) findViewById(R.id.progress);
}
private WebChromeClient webChromeClient = new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
if(progress == 100)
spinner.setVisibility(View.GONE);
}
};
并且应该在您的 xml 布局中定义一个进度条:
<ProgressBar
android:id="@+id/progress"
style="@android:style/Widget.ProgressBar.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="visible" />