您的位置:首页 > 移动开发

【Android】Webview 如何使用SwipeRefreshLayout下拉刷新

2016-08-03 08:48 501 查看
前言:

在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh。现如今,google也忍不住推出了自己的下拉组件SwipeRefreshLayout,下面我们通过api文档和源码来分析学习如何使用SwipeRefreshLayout。

一, SwipeRefreshLayout的具体用法

1、setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener):设置手势滑动监听器。

2、setProgressBackgroundColor(int colorRes):设置进度圈的背景色。

3、setColorSchemeResources(int… colorResIds):设置进度动画的颜色。

4、setRefreshing(Boolean refreshing):设置组件的刷洗状态。

5、setSize(int size):设置进度圈的大小,只有两个值:DEFAULT、LARGE


二,具体使用

1,在一个webview.xml布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_contain"
android:layout_width="match_parent"
android:layout_height="match_parent">

<WebView
android:id="@+id/web_show"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

</android.support.v4.widget.SwipeRefreshLayout>

</LinearLayout>


2,页面代码使用

private WebView webView;
private SwipeRefreshLayout swipeRefresh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_swipy_webview);
initView();
}

private void initView(){
//SwipeRefresh
swipeRefresh = (SwipeRefreshLayout)findViewById(R.id.swipe_contain);
swipeRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
//重新加载刷新页面
webView.loadUrl(webView.getUrl());
}
});
//首次启动刷新页面
swipeRefresh.post(new Runnable() {
@Override
public void run() {
swipeRefresh.setRefreshing(true);
webView.loadUrl(webView.getUrl());
}
});
swipeRefresh.setColorSchemeResources(android.R.color.holo_blue_light,
android.R.color.holo_red_light,
android.R.color.holo_orange_light,
android.R.color.holo_green_light);

//WebView
webView = (WebView)findViewById(R.id.web_show);
webView.loadUrl("http://www.stay4it.com/");
//添加javaScript支持
webView.getSettings().setJavaScriptEnabled(true);
//取消滚动条
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
//触摸焦点起作用
webView.requestFocus();
//点击链接继续在当前browser中响应
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){
//隐藏进度条
swipeRefresh.setRefreshing(false);
}else if(!swipeRefresh.isRefreshing()){
swipeRefresh.setRefreshing(true);
}
}
});

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: