package support.ui.app; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; 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 java.util.ArrayList; import support.ui.adapters.EasyRecyclerAdapter; import support.ui.adapters.EasyViewHolder; import support.ui.cells.CellModel; import support.ui.cells.CellsViewHolderFactory; /** * Created by YuGang Yang on 04 09, 2016. * Copyright 2015-2016 qiji.tech. All rights reserved. */ public abstract class SupportCellsFragment extends Fragment implements EasyViewHolder.OnItemClickListener { private RecyclerView mRecyclerView; private EasyRecyclerAdapter mAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { setupRecyclerView(); return mRecyclerView; } @Override public void onDestroyView() { super.onDestroyView(); mRecyclerView = null; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupAdapter(); } @Override public void onDestroy() { super.onDestroy(); mAdapter = null; } private void setupAdapter() { mAdapter = new EasyRecyclerAdapter(getContext()); mAdapter.viewHolderFactory(new CellsViewHolderFactory(getContext())); mAdapter.setOnClickListener(this); } private void setupRecyclerView() { mRecyclerView = new RecyclerView(getContext()); ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); mRecyclerView.setLayoutParams(params); mRecyclerView.setHasFixedSize(true); mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext())); mRecyclerView.setAdapter(mAdapter); } @Override public void onItemClick(int position, View view) { onItemClick((CellModel) mAdapter.get(position)); } public RecyclerView getRecyclerView() { return mRecyclerView; } public EasyRecyclerAdapter getAdapter() { return mAdapter; } public void clearAll() { mAdapter.clear(); } public void addItem(CellModel cellModel) { mAdapter.add(cellModel); } public void addAll(ArrayList<CellModel> items) { mAdapter.addAll(items); } protected abstract void onItemClick(CellModel cellModel); }