【发布时间】:2020-08-12 01:06:09
【问题描述】:
我创建了一个小的 android 应用来查看响应式网站。我已经实现了拉刷新并且它可以工作,但是当拉刷新时它重定向到我放入 LoadUrl 的主页。如何通过重新加载用户正在访问的相同 url 来刷新?
我的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);
}
}
});
}
}
提前致谢
【问题讨论】:
标签: java android webview reload swiperefreshlayout