package com.wuxiaolong.wewin.ui.tngougirl; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityOptionsCompat; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.wuxiaolong.pullloadmorerecyclerview.PullLoadMoreRecyclerView; import com.wuxiaolong.wewin.model.TngouGirlModel; import com.wuxiaolong.wewin.retrofit.RetrofitCallback; import com.wuxiaolong.wewin.ui.BaseFragment; import com.wuxiaolong.wewin.utils.AppConstants; import com.wuxiaolong.wewin.utils.ImageLoader; import com.xiaomolongstudio.wewin.R; import java.util.ArrayList; import java.util.List; import java.util.Random; import butterknife.BindView; import butterknife.ButterKnife; import retrofit2.Call; public class TngouGirlFragment extends BaseFragment { private DataAdapter dataAdapter; @BindView(R.id.pullLoadMoreRecyclerView) PullLoadMoreRecyclerView pullLoadMoreRecyclerView; private int page = 1; private int rows = 20; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_tngou_girl, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ButterKnife.bind(this, view); initView(); page = new Random().nextInt(45); loadTngouGirl(); } private void initView() { pullLoadMoreRecyclerView.setStaggeredGridLayout(2);//参数为列数 pullLoadMoreRecyclerView.setRefreshing(true); dataAdapter = new DataAdapter(); pullLoadMoreRecyclerView.setAdapter(dataAdapter); pullLoadMoreRecyclerView.setOnPullLoadMoreListener(new PullLoadMoreRecyclerView.PullLoadMoreListener() { @Override public void onRefresh() { page = 1; loadTngouGirl(); } @Override public void onLoadMore() { page = new Random().nextInt(45); loadTngouGirl(); } }); } private void loadTngouGirl() { Call<TngouGirlModel> call = apiStores.loadTngouGirl(page + 1, rows); call.enqueue(new RetrofitCallback<TngouGirlModel>() { @Override public void onSuccess(TngouGirlModel model) { if (model.isStatus()) { if (page == 1) { dataAdapter.clear(); } dataAdapter.addAll(model.getTngou()); } } @Override public void onFailure(int code, String msg) { toastShow(msg); } @Override public void onThrowable(Throwable t) { toastShow(t.getMessage()); } @Override public void onFinish() { pullLoadMoreRecyclerView.setPullLoadMoreCompleted(); } }); addCalls(call); } public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder> { private List<TngouGirlModel.TngouEntity> dataList = new ArrayList<>(); public void addAll(List<TngouGirlModel.TngouEntity> dataList) { this.dataList.addAll(dataList); notifyDataSetChanged(); } public void clear() { this.dataList.clear(); } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.tngou_girl_item, parent, false); return new ViewHolder(v); } @Override public void onBindViewHolder(ViewHolder holder, int position) { TngouGirlModel.TngouEntity tngouEntity = dataList.get(position); holder.title.setText(tngouEntity.getTitle()); ImageLoader.load(mActivity, AppConstants.API_SERVER_IMAGE_URL + tngouEntity.getImg(), holder.imageView); } @Override public int getItemCount() { return dataList.size(); } public class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.imgView) ImageView imageView; @BindView(R.id.title) TextView title; public ViewHolder(final View itemView) { super(itemView); ButterKnife.bind(this, itemView); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TngouGirlModel.TngouEntity tngouEntity = dataList.get(getLayoutPosition()); Intent intent = new Intent(mActivity, TngouGirlDetailActivity.class); intent.putExtra(AppConstants.ID, tngouEntity.getId()); ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(mActivity, itemView, tngouEntity.getImg()); ActivityCompat.startActivity(mActivity, intent, options.toBundle()); } }); } } } }