package com.ximsfei.skindemo.ui.discover; import android.content.Context; import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.ximsfei.skindemo.R; import com.ximsfei.skindemo.bean.ImageItem; import com.ximsfei.skindemo.bean.RecommendItem; import com.ximsfei.skindemo.databinding.FooterRecommendItemBinding; import com.ximsfei.skindemo.databinding.FragmentRecommendBinding; import com.ximsfei.skindemo.databinding.HeaderRecommendItemBinding; import com.ximsfei.skindemo.ui.adapter.RecommendAdapter; import com.ximsfei.skindemo.ui.base.BaseFragment; import com.ximsfei.skindemo.utils.TimeUtil; import com.youth.banner.loader.ImageLoader; import java.util.ArrayList; import java.util.List; import static com.ximsfei.skindemo.DataManager.BANNER_IMAGES; import static com.ximsfei.skindemo.DataManager.IMAGES; import static com.ximsfei.skindemo.DataManager.LABELS; import static com.ximsfei.skindemo.DataManager.LABELS_INDICATOR; import static com.ximsfei.skindemo.DataManager.SUBTITLES; import static com.ximsfei.skindemo.DataManager.TITLES; /** * Created by ximsfei on 17-1-8. */ public class RecommendFragment extends BaseFragment<FragmentRecommendBinding> { private ArrayList<Integer> mBannerImages = new ArrayList<>(); private HeaderRecommendItemBinding mHeaderBinding; private FooterRecommendItemBinding mFooterBinding; private RecommendAdapter mAdapter; @Override protected int getLayoutId() { return R.layout.fragment_recommend; } @Override protected void onCreateVew(LayoutInflater inflater, Bundle savedInstanceState) { super.onCreateVew(inflater, savedInstanceState); mHeaderBinding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout.header_recommend_item, null, false); initRecyclerView(); } private void initRecyclerView() { mDataBinding.recyclerView.setPullRefreshEnabled(false); mDataBinding.recyclerView.setLoadingMoreEnabled(true); mDataBinding.recyclerView.addHeaderView(mHeaderBinding.getRoot()); mFooterBinding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout.footer_recommend_item, null, false); mDataBinding.recyclerView.setFootView(mFooterBinding.getRoot()); mDataBinding.recyclerView.setNoMore(true); mFooterBinding.getRoot().setVisibility(View.VISIBLE); mDataBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); mDataBinding.recyclerView.setNestedScrollingEnabled(false); mDataBinding.recyclerView.setHasFixedSize(false); mDataBinding.recyclerView.setItemAnimator(new DefaultItemAnimator()); mAdapter = new RecommendAdapter(getActivity()); mDataBinding.recyclerView.setAdapter(mAdapter); } @Override protected void loadData() { loadLocalData(); loadBannerAd(); load(); } private void loadLocalData() { mHeaderBinding.dailyTxt.setText(getTodayTime().get(2).indexOf("0") == 0 ? getTodayTime().get(2).replace("0", "") : getTodayTime().get(2)); } private ArrayList<String> getTodayTime() { String data = TimeUtil.getData(); String[] split = data.split("-"); String year = split[0]; String month = split[1]; String day = split[2]; ArrayList<String> list = new ArrayList<>(); list.add(year); list.add(month); list.add(day); return list; } private void loadBannerAd() { mBannerImages.clear(); for (int i = 0; i < BANNER_IMAGES.length; i++) { mBannerImages.add(BANNER_IMAGES[i]); } mHeaderBinding.banner .setDelayTime(5000) .setImages(mBannerImages) .setImageLoader(new ImageLoader() { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path) .crossFade(1000) .into(imageView); } }).start(); } private void load() { mAdapter.clear(); List<RecommendItem> list = new ArrayList<>(); for (int i = 0; i < LABELS.length; i++) { RecommendItem item = new RecommendItem(); item.title = LABELS[i]; item.indicator = LABELS_INDICATOR[i]; item.item0 = new ImageItem(TITLES[i * 6], SUBTITLES[i * 6], IMAGES[i * 6]); item.item1 = new ImageItem(TITLES[i * 6 + 1], SUBTITLES[i * 6 + 1], IMAGES[i * 6 + 1]); item.item2 = new ImageItem(TITLES[i * 6 + 2], SUBTITLES[i * 6 + 2], IMAGES[i * 6 + 2]); item.item3 = new ImageItem(TITLES[i * 6 + 3], SUBTITLES[i * 6 + 3], IMAGES[i * 6 + 3]); item.item4 = new ImageItem(TITLES[i * 6 + 4], SUBTITLES[i * 6 + 4], IMAGES[i * 6 + 4]); item.item5 = new ImageItem(TITLES[i * 6 + 5], SUBTITLES[i * 6 + 5], IMAGES[i * 6 + 5]); list.add(item); } mAdapter.addAll(list); } }