package com.yuyh.sprintnba.ui.fragment; import android.os.Bundle; import android.os.Handler; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.view.View; import com.cjj.MaterialRefreshLayout; import com.cjj.MaterialRefreshListener; import com.yuyh.library.utils.DateUtils; import com.yuyh.library.utils.DimenUtils; import com.yuyh.library.utils.log.LogUtils; import com.yuyh.sprintnba.R; import com.yuyh.sprintnba.base.BaseLazyFragment; import com.yuyh.sprintnba.base.BaseWebActivity; import com.yuyh.sprintnba.http.bean.player.TeamsRank; import com.yuyh.sprintnba.support.OnListItemClickListener; import com.yuyh.sprintnba.support.SpaceItemDecoration; import com.yuyh.sprintnba.support.SupportRecyclerView; import com.yuyh.sprintnba.ui.adapter.TeamsRankAdapter; import com.yuyh.sprintnba.ui.presenter.impl.TeamSortPresenter; import com.yuyh.sprintnba.ui.view.TeamSortView; import java.util.ArrayList; import java.util.List; import butterknife.InjectView; /** * @author yuyh. * @date 16/6/5. */ public class TeamSortFragment extends BaseLazyFragment implements TeamSortView { private String date = ""; @InjectView(R.id.refresh) MaterialRefreshLayout materialRefreshLayout; @InjectView(R.id.recyclerview) SupportRecyclerView recyclerView; @InjectView(R.id.emptyView) View emptyView; private TeamsRankAdapter adapter; private List<TeamsRank.TeamBean> list = new ArrayList<>(); private TeamSortPresenter presenter; @Override protected void onCreateViewLazy(Bundle savedInstanceState) { super.onCreateViewLazy(savedInstanceState); setContentView(R.layout.fragment_normal_recyclerview); date = DateUtils.format(System.currentTimeMillis(), "yyyy-MM-dd"); LogUtils.i(date); mActivity.invalidateOptionsMenu(); initView(); presenter = new TeamSortPresenter(mActivity, this); presenter.requestTeamsRank(false); } private void initView() { adapter = new TeamsRankAdapter(list, mActivity, R.layout.item_fragment_teamsort_entity, R.layout.item_fragment_teamsort_title); adapter.setOnItemClickListener(new OnListItemClickListener<TeamsRank.TeamBean>() { @Override public void onItemClick(View view, int position, TeamsRank.TeamBean data) { BaseWebActivity.start(mActivity, data.detailUrl, data.name, true, true); } }); recyclerView.setLayoutManager(new LinearLayoutManager(recyclerView.getContext())); recyclerView.setAdapter(adapter); recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.addItemDecoration(new SpaceItemDecoration(DimenUtils.dpToPxInt(1))); materialRefreshLayout.setMaterialRefreshListener(new RefreshListener()); materialRefreshLayout.setLoadMore(false); } @Override public void showTeamSort(List<TeamsRank.TeamBean> teamlist) { list.clear(); list.addAll(teamlist); complete(); } @Override public void showLoading(String msg) { showLoadingDialog(); } @Override public void hideLoading() { hideLoadingDialog(); } @Override public void showError(String msg) { hideLoading(); complete(); } private class RefreshListener extends MaterialRefreshListener { @Override public void onRefresh(final MaterialRefreshLayout materialRefreshLayout) { presenter.requestTeamsRank(true); } } private void complete() { recyclerView.setEmptyView(emptyView); adapter.notifyDataSetChanged(); materialRefreshLayout.finishRefresh(); materialRefreshLayout.finishRefreshLoadMore(); new Handler().postDelayed(new Runnable() { @Override public void run() { hideLoadingDialog(); } }, 800); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser && mActivity != null) { mActivity.invalidateOptionsMenu(); } } @Override protected void onDestroyViewLazy() { super.onDestroyViewLazy(); } }