您的位置:首页 > 其它

SwipeRefreshLayout自动刷新实现

2016-06-02 14:31 274 查看
import android.annotation.TargetApi;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.ViewTreeObserver;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements ViewTreeObserver.OnGlobalLayoutListener {

private SwipeRefreshLayout mSwipeRefreshLayout;

private Handler mHandler = new Handler();
private final Runnable mRefreshDone = new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(false);
Toast.makeText(MainActivity.this, "刷新结束", Toast.LENGTH_SHORT).show();
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.referesh);
mSwipeRefreshLayout.setColorSchemeResources(R.color.color1, R.color.color2, R.color.color3, R.color.color4);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Toast.makeText(MainActivity.this, "开始刷新", Toast.LENGTH_SHORT).show();
mHandler.removeCallbacks(mRefreshDone);
mHandler.postDelayed(mRefreshDone, 5000);
}
});
mSwipeRefreshLayout.getViewTreeObserver().addOnGlobalLayoutListener(this);
}

@TargetApi(16)
@Override
public void onGlobalLayout() {
Log.i("fff", "--------onGlobalLayout--------");
mSwipeRefreshLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
mSwipeRefreshLayout.setRefreshing(true);
Toast.makeText(MainActivity.this, "开始刷新", Toast.LENGTH_SHORT).show();
mHandler.removeCallbacks(mRefreshDone);
mHandler.postDelayed(mRefreshDone, 5000);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: