package com.sxjs.jd.composition.main.findfragment; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.sxjs.common.base.baseadapter.BaseQuickAdapter; import com.sxjs.common.widget.headerview.JDHeaderView; import com.sxjs.common.widget.pulltorefresh.PtrFrameLayout; import com.sxjs.common.widget.pulltorefresh.PtrHandler; import com.sxjs.jd.R; import com.sxjs.common.base.BaseFragment; import com.sxjs.jd.entities.FindsBean; import javax.inject.Inject; import butterknife.BindView; import butterknife.ButterKnife; /** * @author admin */ public class FindFragment extends BaseFragment implements FindContract.View, PtrHandler, BaseQuickAdapter.RequestLoadMoreListener { @Inject FindPresenter mPresenter; @BindView(R.id.find_recyclerview) RecyclerView findRecyclerview; @BindView(R.id.find_pull_refresh_header) JDHeaderView findPullRefreshHeader; private FindsAdapter adapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_find, container, false); unbinder = ButterKnife.bind(this, view); initView(); initData(); return view; } public static FindFragment newInstance() { return new FindFragment(); } public void initView() { DaggerFindFragmentComponent.builder() .appComponent(getAppComponent()) .findPresenterModule(new FindPresenterModule(this)) .build() .inject(this); findPullRefreshHeader.setPtrHandler(this); findRecyclerview.setLayoutManager(new LinearLayoutManager(mActivity)); adapter = new FindsAdapter(R.layout.item_finds_recyclerview); adapter.setOnLoadMoreListener(this); adapter.setEnableLoadMore(true); findRecyclerview.setAdapter(adapter); } public void initData() { mPresenter.getFindData(); } private static final String TAG = "FindFragment"; @Override public void setFindData(FindsBean find) { adapter.addData(find.content); } @Override public void setMoreData(FindsBean find) { adapter.getData().addAll(find.content); adapter.loadMoreComplete(); } @Override public void onRefreshBegin(final PtrFrameLayout frame) { frame.postDelayed(new Runnable() { @Override public void run() { frame.refreshComplete(); } }, 2000); } @Override public void onLoadMoreRequested() { findRecyclerview.postDelayed(new Runnable() { @Override public void run() { if (adapter.getData().size() >= 90){ adapter.loadMoreEnd(false); } else{ mPresenter.getMoreFindData(); } } },1000); } }