java – Android – Webview Progressbar
发布时间:2020-12-15 04:15:07 所属栏目:Java 来源:网络整理
导读:我在webview上面添加了进度条. 每当我点击链接时,我只是将进度条显示为可见. 我想在webview上有进度条覆盖,我想显示进度条的百分比.我知道css,但我不知道如何改变android中进度条的位置 ?xml version="1.0" encoding="utf-8"?WebView xmlns:android="http://
我在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); . myProgress.setProgress(progress * 100); 而不是MyActivity.this.setProgress(). 此外,如果要让ProgressBar出现在WebView前面,则无法使用LinearLayout.使用具有centerInParent =“true”的RelativeLayout,并在布局中列出WebView之后的ProgressBar. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |