[英]Android - Webview Progressbar
我在webview上面添加了進度條。 每當我點擊鏈接時,我只是將進度條顯示為可見。
我想在webview上有進度條覆蓋,我想顯示進度條的百分比。 我知道css,但我不知道如何改變android中進度條的位置
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
MainActivity.java
public class MainActivity extends Activity {
WebView web;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (WebView) findViewById(R.id.webview01);
// request the progress-bar feature for the activity
getWindow().requestFeature(Window.FEATURE_PROGRESS);
// set a webChromeClient to track progress
web.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
// update the progressBar
MainActivity.this.setProgress(progress * 100);
}
});
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("url");
}
// To handle "Back" key press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
要顯示進度條百分比,是否需要修改此代碼? 或者我可以從此代碼擴展功能嗎?
要顯示“頁面加載”進度條,請使用以下命令:
在onCreate()中:
// request the progress-bar feature for the activity
getWindow().requestFeature(Window.FEATURE_PROGRESS);
// set a webChromeClient to track progress
myWebView.setWebChromeClient(new WebChromeClient()
{
public void onProgressChanged(WebView view, int progress)
{
// update the progressBar
MyActivity.this.setProgress(progress * 100);
}
});
這將顯示在屏幕頂部使用內置樣式,就像內置瀏覽器一樣。
如果您希望顯示和更新自己的ProgressBar,過程類似,請獲取進度條的句柄:
ProgressBar myProgress = (ProgressBar)findViewById(R.id.progressBar1);
。 。 。 並在onProgressChanged()函數中,使用:
myProgress.setProgress(progress * 100);
而不是MyActivity.this.setProgress()。
此外,如果要讓ProgressBar出現在WebView前面,則無法使用LinearLayout。 使用具有centerInParent =“true”的RelativeLayout,並在布局中列出WebView之后的ProgressBar。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.