//需要导入最新的V4包
package com.wans51.customview;
import android.content.Context;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
/**
* Created by daixiansen on 2016/2/16.
*/
public class AutoSwipeRefreshLayout extends SwipeRefreshLayout {
private ViewGroup viewGroup ;
public ViewGroup getViewGroup() {
return viewGroup;
}
public void setViewGroup(ViewGroup viewGroup) {
this.viewGroup = viewGroup;
}
public AutoSwipeRefreshLayout(Context context) {
super(context);
}
public AutoSwipeRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* 自动刷新
*/
public void autoRefresh() {
try {
Field mCircleView = SwipeRefreshLayout.class.getDeclaredField("mCircleView");
mCircleView.setAccessible(true);
View progress = (View) mCircleView.get(this);
progress.setVisibility(VISIBLE);
Method setRefreshing = SwipeRefreshLayout.class.getDeclaredMethod("setRefreshing", boolean.class, boolean.class);
setRefreshing.setAccessible(true);
setRefreshing.invoke(this, true, true);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
if(null!= viewGroup){
int scrollY = viewGroup.getScrollY();
if(viewGroup.getScrollY()> 1){
//直接截断时间传播
return false;
}else{
return super.onTouchEvent(arg0);
}
}
return super.onTouchEvent(arg0);
}
}
可自动弹出刷新的SwipeRefreshLayout
最新推荐文章于 2024-03-05 13:28:27 发布