我创建了一个小小的安卓应用来查看一个响应式网站。我已经实现了一个拉动刷新,它的工作原理,但是当拉动刷新时,它重定向到我放在LoadUrl的主页。如何通过重新加载用户正在访问的同一网址来刷新?
我的java代码。
public class MainActivity extends AppCompatActivity {
WebView webView;
SwipeRefreshLayout swipe;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipe = (SwipeRefreshLayout) findViewById(R.id.swipe);
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
LoadWeb();
}
});
LoadWeb();
}
public void LoadWeb()
{
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
//tiga baris dibawah ini agar laman yang dimuat dapat
//melakukan zoom
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
//baris dibawah ini untuk menambahkan scrollbar didalam webview-nya
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webView.loadUrl("http://example.com");
swipe.setRefreshing(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
webView.loadUrl("file:///android_asset/error.html");
}
@Override
public void onPageFinished(WebView view, String url) {
//ketika loading selesai, ikon loading akan hilang
swipe.setRefreshing(false);
}
});
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (webView.getProgress()==100){
swipe.setRefreshing(false);
}else {
swipe.setRefreshing(true);
}
}
});
}
}
先谢谢你
在刷新布局中调用webView.reload()。
swipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
webView.reload();
}
});