package com.airplayer.fragment.libchild; import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.FragmentTransaction; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.airplayer.R; import com.airplayer.fragment.singleitem.ArtistFragment; import com.airplayer.model.AirModelSingleton; import com.airplayer.model.Artist; import com.airplayer.adapter.AirAdapter; import com.facebook.drawee.view.SimpleDraweeView; import java.util.List; /** * Created by ZiyiTsang on 15/6/9. */ public class ArtistGridFragment extends MyLibraryChildFragment { private List<Artist> mList; private ArtistAdapter adapter; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mList = AirModelSingleton.getInstance(getParentFragment().getActivity()).getArtistArrayList(); } @Override public void setupRecyclerView(RecyclerView recyclerView) { final GridLayoutManager manager = new GridLayoutManager(getParentFragment().getActivity(), 2); manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { return position == 0 ? manager.getSpanCount() : 1; } }); recyclerView.setLayoutManager(manager); // ====== set adapter for recyclerView ====== adapter = new ArtistAdapter(getParentFragment().getActivity(), mList); adapter.setOnItemClickListener(new AirAdapter.OnItemClickListener() { @Override public void onItemClicked(View view, int position) { FragmentTransaction ft = getParentFragment().getActivity() .getSupportFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, ArtistFragment.newInstance(mList.get(position - 1))); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); ft.addToBackStack(null); ft.commit(); } }); recyclerView.setAdapter(adapter); } @Override public void onResume() { super.onResume(); adapter.notifyDataSetChanged(); } private class ArtistAdapter extends AirAdapter { public ArtistAdapter(Context context, List<Artist> list) { super(context, list); } @Override public AirItemViewHolder onCreateItemViewHolder(ViewGroup parent) { return new ArtistItemViewHolder(getLayoutInflater() .inflate(R.layout.recycler_item_artist, parent, false)); } @Override public void onBindItemViewHolder(AirItemViewHolder itemHolder, int position) { if (itemHolder instanceof ArtistItemViewHolder) { ArtistItemViewHolder artistViewHolder = (ArtistItemViewHolder) itemHolder; Artist item = (Artist) getList().get(position - 1); artistViewHolder.textView.setText(item.getName()); artistViewHolder.draweeView.setImageURI(item.getArtistPictureUri()); } } public class ArtistItemViewHolder extends AirAdapter.AirItemViewHolder { SimpleDraweeView draweeView; TextView textView; public ArtistItemViewHolder(View itemView) { super(itemView); draweeView = (SimpleDraweeView) itemView.findViewById(R.id.artist_image); textView = (TextView) itemView.findViewById(R.id.artist_name); } } } }