Android webviewドロップダウンリフレッシュ
2598 ワード
今日はビジネス上必要なので、webviewを更新する必要がありますが、webviewにはこの機能がないに違いありませんね.そこで、xlistviewでwebviewを頭に置いて、ドロップダウンしたときに、webviewを再ロードしたいと思っていましたが、そう言えばスライド衝突になるかもしれません.そこでstack overflowで良い解決策を見つけました.
SwipeRefreshLayoutはGoogleの公式ドロップダウンリフレッシュコントロールで、4.0以下のバージョンでAndroid-support-v 4を使用する必要があります.jarパッケージが使用できます.SwipeRefreshLayoutは、WebView、ListView、ScroolViewなど、スライド可能なコントロールの外側に追加するだけで非常に簡単です.
demoの例は以下の通りである:public class MainActivity extends Activity{
}
SwipeRefreshLayoutはGoogleの公式ドロップダウンリフレッシュコントロールで、4.0以下のバージョンでAndroid-support-v 4を使用する必要があります.jarパッケージが使用できます.SwipeRefreshLayoutは、WebView、ListView、ScroolViewなど、スライド可能なコントロールの外側に追加するだけで非常に簡単です.
demoの例は以下の通りである:public class MainActivity extends Activity{
private WebView webView;
private WebSettings webSettings;
private SwipeRefreshLayout swipeLayout;
private String linkUrl="https://www.baidu.com/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swipeLayout = (SwipeRefreshLayout)findViewById(R.id.swipe_container);
//
swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//
// webview.loadUrl(webview.getUrl());
webView.reload();
}
});
//
swipeLayout.setColorScheme(R.color.holo_blue_bright,
R.color.holo_green_light, R.color.holo_orange_light,
R.color.holo_red_light);
// webview
initwebview();
}
private void initwebview(){
webView= (WebView) findViewById(R.id.webview);
webSettings= webView.getSettings();
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webSettings.setSupportZoom(false);
webSettings.setBuiltInZoomControls(false);
webSettings.setAppCacheMaxSize(1024 * 1024 * 9);//
webSettings.setAllowFileAccess(true);
webSettings.setAppCacheEnabled(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
//
swipeLayout.setRefreshing(false);
} else {
if (!swipeLayout.isRefreshing())
//
swipeLayout.setRefreshing(true);
}
super.onProgressChanged(view, newProgress);
}
});
webView.loadUrl(linkUrl);
}
}