package com.txx.androidpaginglibrary.listwrap.listview; import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; import android.widget.ListView; import com.txx.androidpaginglibrary.R; public class PagingRefreshingListViewWrap extends PagingListViewWrapBase implements SwipeRefreshLayout.OnRefreshListener{ private boolean isRefreshing = false;//是否是下拉刷新 private SwipeRefreshLayout refreshingListView; public PagingRefreshingListViewWrap(PagingListViewWrapDelegate pagingListViewWrapDelegate){ this.pagingListViewWrapDelegate = pagingListViewWrapDelegate; } private Handler handler; protected ListView getConfigedListView(LayoutInflater inflater){ handler = new Handler(); refreshingListView = (SwipeRefreshLayout)inflater.inflate(R.layout.common_paging_refresh_list_view, null); refreshingListView.setColorSchemeResources(R.color.app_main_theme_color, R.color.app_main_theme_color_two, R.color.app_main_theme_color_three, R.color.app_main_theme_color_four); ListView refreshView = (ListView)refreshingListView.findViewById(R.id.list_view); refreshView.setCacheColorHint(0); refreshView.setDividerHeight(0); refreshView.setFastScrollEnabled(false); refreshView.setOverScrollMode(View.OVER_SCROLL_NEVER); // refreshingListView.setShowIndicator(false); // refreshingListView.setVerticalScrollBarEnabled(true); refreshingListView.setOnRefreshListener(this); // // refreshingListView.setOnRefreshListener(new OnRefreshListener<ListView>() { // @Override // public void onRefresh(PullToRefreshBase<ListView> refreshView) { // if(!isRefreshing && !pagingListViewWrapDelegate.isListDataLoading()){ // isRefreshing = true; // pagingListViewWrapDelegate.loadListData();//下拉刷新 // }else{ // refreshComplete(); // } // } // }); return refreshView; } public boolean isListViewRefreshing(){ return isRefreshing; } public void setListViewRefreshing(){ isRefreshing = true; } // public void refreshComplete(){ // isRefreshing = false; // if(refreshingListView != null){ // refreshingListView.onRefreshComplete(); // } // } public void refreshComplete() { isRefreshing = false; if(handler != null){ handler.postDelayed(runnable, 500); } } Runnable runnable = new Runnable() { @Override public void run() { refreshingListView.setRefreshing(false); if (refreshingListView.isRefreshing()) { System.out.println("\r\ntrying to hide refresh....."); handler.postDelayed(this, 500); } } }; @Override protected View getAddToContainerView() { return refreshingListView; } @Override public void onRefresh() { if(!isRefreshing && !pagingListViewWrapDelegate.isListDataLoading()){ isRefreshing = true; pagingListViewWrapDelegate.loadListData();//下拉刷新 }else{ refreshComplete(); } } }