SwipeRefreshLayout实现下拉刷新

在github上有个开源项目pull-to-refresh,就是一个实现下拉、上拉刷新功能的第三方类库,引用这个项目的时候需要导入包、修正错误等等过于麻烦,所以谷歌官方就出了一个控件并集合到SDK里面,可直接调用,也就是SwipeRefreshLayout。
首先在xml里面直接添加SwipeRefreshLayout,用它将所需要刷新的布局包裹起来:

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

然后再activity中添加代码,找到控件,并给控件增加一个监听事件,执行的动作就是webview重新加载一次网址,从而实现webview的刷新,刷新时间为4000毫秒,swipeLayout.setRefreshing(false);这句话是必须的,不然刷新的动作不会停下来,一直出来刷新的动作,所以不会出现刷新的结果。

swipeLayout = (SwipeRefreshLayout)findViewById(R.id.swipe_container);  
    swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {            
        @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override  
        public void onRefresh() {          
        new Handler().postDelayed(new Runnable() {
@Override
public void run() {
 webview.loadUrl(webview.getUrl()); 
swipeLayout.setRefreshing(false);
}
}, 4000);            
        }  
    });   

顶部刷新的动作可以设置颜色,最多可以设置4种颜色:

swipeLayout.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); 

如果是activity里面加载多个fragment里面的webview要刷新,同样首先得找到fragment里面的控件,然后让控件从新加载网址的动作,这些动作需要新写一个方法,而且必须用线程,不然会报错,最后将新写的方法添加到fragment实例化之后,跟webview的JS交互类似。

下拉刷新状态中的webview

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值