package view; import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.AbsListView; import android.widget.ListView; import android.widget.ViewFlipper; import com.example.luokx.loadmore_2016_03_15_12_02.R; import interfaces.LoadController; /** * 描述说明 <br/> * Author : luokaixuan <br/> * CreateDate : 16-3-15 下午5:18<br/> * Modified : luokaixuan <br/> * ModifiedDate : 16-3-15 下午5:18<br/> * Email : 1005949566@qq.com <br/> * Version 1.0 */ public class SwipeRefreshLoadMoreLayout2 extends SwipeRefreshLayout implements AbsListView.OnScrollListener, LoadController { View mListViewFooter; ViewFlipper vfFooter; /** * listview实例 */ private ListView mListView; LoadMore loadMore; public boolean isNoMore = false; /** 记录第一行Item的数值 */ private int firstVisibleItem; public SwipeRefreshLoadMoreLayout2(Context context) { super(context); initView(context); } public SwipeRefreshLoadMoreLayout2(Context context, AttributeSet attrs) { super(context, attrs); initView(context); } public void initView (Context context) { mListViewFooter = LayoutInflater.from(context).inflate(R.layout.foot_item, null, false); //正在加载,加载成功,加载失败,没有网络,没有更多。 vfFooter = (ViewFlipper) mListViewFooter.findViewById(R.id.vf_footer_container); vfFooter.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { loadMore(); } }); } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); getListView(); if (mListView != null && mListView.getFooterViewsCount() < 1) { Log.e(" dedao ", mListView + " dedao " + mListViewFooter); mListView.addFooterView(mListViewFooter); // mListView.setFooterDividersEnabled(false); } } /** * 获取ListView对象 */ private void getListView() { int childs = getChildCount(); if (childs > 0) { View childView = getChildAt(0); if (childView instanceof ListView) { mListView = (ListView) childView; // 设置滚动监听器给ListView, 使得滚动的情况下也可以自动加载 mListView.setOnScrollListener(this); // Log.d(VIEW_LOG_TAG, "### 找到listview"); } } } @Override public void onScrollStateChanged(AbsListView view, int scrollState) { //当滑动到底部时 if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE // && firstVisibleItem != 0) { && mListView.getLastVisiblePosition() + 1 == mListView.getCount()) { loadMore(); Log.e(" load more ", " loadmore "); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { this.firstVisibleItem = firstVisibleItem; if (mListViewFooter != null) { //判断可视Item是否能在当前页面完全显示 // if (visibleItemCount == totalItemCount) { // // removeFooterView(footerView); // mListViewFooter.setVisibility(View.GONE);//隐藏底部布局 // if (!isNoMore && mListView.getCount() > 0) { // } // } else { // // addFooterView(footerView); // mListViewFooter.setVisibility(View.VISIBLE);//显示底部布局 // } } } public void setLoadMoreListener(LoadMore loadMore) { this.loadMore = loadMore; } public void loadMore () { if (! isNoMore) { loadMore.loadMore(); } } @Override public void loading() { vfFooter.setDisplayedChild(0); } @Override public void loadSuccess() { vfFooter.setDisplayedChild(1); SwipeRefreshLoadMoreLayout2.this.setRefreshing(false); } @Override public void loadFailure() { vfFooter.setDisplayedChild(2); SwipeRefreshLoadMoreLayout2.this.setRefreshing(false); } @Override public void loadNoNetWork() { vfFooter.setDisplayedChild(3); SwipeRefreshLoadMoreLayout2.this.setRefreshing(false); } @Override public void loadNoMore() { vfFooter.setDisplayedChild(4); SwipeRefreshLoadMoreLayout2.this.setRefreshing(false); isNoMore = true; } @Override public void loadServerError() { vfFooter.setDisplayedChild(5); SwipeRefreshLoadMoreLayout2.this.setRefreshing(false); } @Override public void loadUnauthenticated() { vfFooter.setDisplayedChild(6); SwipeRefreshLoadMoreLayout2.this.setRefreshing(false); } /** * 上拉刷新的ListView的回调监听 * * @author xiejinxiong * */ public interface LoadMore { void loadMore(); } }
让swiperefreshlayout 加载更多。
最新推荐文章于 2019-06-12 17:14:44 发布