首先找到布局里的swipfreshlayout对象。之后利用java中的反射原理,先获取mCircleView让其设置可见,之后获取setrefreshing方法,调用invoke方法进行调用。
代码如下:
public void autoRefresh(){
try {
Field mCircleView = SwipeRefreshLayout.class.getDeclaredField("mCircleView");
mCircleView.setAccessible(true);
View loadingview = (View) mCircleView.get(myRefreshLayout);
loadingview.setVisibility(View.VISIBLE);
Method setRefresh = SwipeRefreshLayout.class.getDeclaredMethod("setRefreshing",boolean.class,boolean.class);
setRefresh.setAccessible(true);
setRefresh.invoke(myRefreshLayout,true,true);
} catch (Exception e) {
e.printStackTrace();
}
}
其中SwipeRefreshLayout.class.getDeclaredField("mCircleView")是获取名为mcircleview的对象,setAccessible方法表示去除权限。之后我们可以对其修改。mCircleView.get(myRefreshLayout)获取那个小圆圈view,设置其为visible。之后获取setrefreshing方法,invoke进行调用。
这个有点小问题,更正的请见http://blog.youkuaiyun.com/qq_29654885/article/details/52033148