package com.troy.xifan.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import butterknife.BindView; import com.chenenyu.router.Router; import com.jude.easyrecyclerview.EasyRecyclerView; import com.jude.easyrecyclerview.adapter.RecyclerArrayAdapter; import com.jude.easyrecyclerview.decoration.DividerDecoration; import com.troy.xifan.R; import com.troy.xifan.activity.TrendStatusesActivity; import com.troy.xifan.adapter.TrendAdapter; import com.troy.xifan.config.Constants; import com.troy.xifan.http.HttpRequestFactory; import com.troy.xifan.http.callback.SimpleHttpRequestCallback; import com.troy.xifan.http.exception.ApiException; import com.troy.xifan.model.response.TrendsRes; import com.troy.xifan.util.UIUtils; /** * Created by chenlongfei on 2017/1/10. */ public class TrendFragment extends BaseFragment { @BindView(R.id.recycler_view) EasyRecyclerView mRecyclerView; private TrendAdapter mTrendAdapter; private boolean isLoaded; public static Fragment newInstance() { return new TrendFragment(); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser && !isLoaded) { getTrends(); isLoaded = true; } } private void getTrends() { HttpRequestFactory.getInstance().getTrends(new SimpleHttpRequestCallback<TrendsRes>() { @Override public void onSuccess(TrendsRes responseData) { mTrendAdapter.clear(); mTrendAdapter.addAll(responseData.getTrends()); mTrendAdapter.notifyDataSetChanged(); } @Override public void onFail(ApiException apiException) { UIUtils.showToast(getActivity(), apiException.getErrorMessage()); } }); } @Override protected void initViews() { mTrendAdapter = new TrendAdapter(getActivity()); mTrendAdapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() { @Override public void onItemClick(int position) { TrendsRes.Trends trend = mTrendAdapter.getAllData().get(position); Bundle bundle = new Bundle(); bundle.putString(TrendStatusesActivity.BUNDLE_SEARCH_KEYWORD, trend.getName()); Router.build(Constants.Router.TREND_STATUSES).extras(bundle).go(getActivity()); } }); DividerDecoration itemDecoration = new DividerDecoration(getResources().getColor(R.color.divider_line_color), Math.round(getResources().getDimension(R.dimen.divider_line_size)), 0, 0); itemDecoration.setDrawLastItem(true); itemDecoration.setDrawHeaderFooter(false); mRecyclerView.addItemDecoration(itemDecoration); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mRecyclerView.setAdapterWithProgress(mTrendAdapter); mRecyclerView.setRefreshListener(this); mRecyclerView.setRefreshingColor(getResources().getIntArray(R.array.refreshing_color)); } @Override protected int getContentViewResId() { return R.layout.fragment_trend; } @Override public void onRefresh() { getTrends(); } }