package yifeiyuan.practice.practicedemos.recyclerview; import android.content.Context; import android.os.Bundle; import android.support.design.widget.Snackbar; import android.support.v7.widget.DefaultItemAnimator; 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 android.widget.TextView; import java.util.ArrayList; import java.util.List; import butterknife.ButterKnife; import butterknife.InjectView; import yifeiyuan.practice.practicedemos.R; import yifeiyuan.practice.practicedemos.base.BaseFragment; /** */ public class HoriListFragment extends BaseFragment { @InjectView(R.id.rv_list) RecyclerView mRvList; private ListAdapter mAdapter; private List<String> mData; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = inflater.inflate(R.layout.fragment_single_rv, container, false); ButterKnife.inject(this, mRootView); return mRootView; } protected void init(Bundle savedInstanceState) { mData = new ArrayList<>(); mAdapter = new ListAdapter(getActivity(), mData, (view, position) -> { Snackbar.make(view, "点击了position:" + position, Snackbar.LENGTH_SHORT) .setAction("删除该项目",v-> { mData.remove(position); mAdapter.notifyItemRemoved(position); }) .show(); }); for (int i = 0; i < 20; i++) { mData.add("~~" + i); } mRvList.setItemAnimator(new DefaultItemAnimator()); mRvList.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false)); mRvList.setHasFixedSize(true); mRvList.setAdapter(mAdapter); } @Override public void onDestroyView() { super.onDestroyView(); ButterKnife.reset(this); } public static class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> implements View.OnClickListener { private Context mContext; private List<String> mDatas; public ListAdapter(Context context, List<String> data,Callback mCallback) { mContext = context; mDatas = data; this.mCallback = mCallback; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_img, parent, false); view.setOnClickListener(this); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { position = holder.getAdapterPosition(); if (position == 0) { holder.mTvSf.setText("司令"); }else if (position == 1) { holder.mTvSf.setText("军长"); }else if (position == 2) { holder.mTvSf.setText("旅长"); }else{ holder.mTvSf.setText("小兵"); } holder.itemView.setOnClickListener(v-> { mCallback.onItemClick(v, holder.getAdapterPosition()); }); } @Override public int getItemCount() { return mDatas.size(); } @Override public void onClick(View v) { } public static class ViewHolder extends RecyclerView.ViewHolder { @InjectView(R.id.tv_sf) public TextView mTvSf; public ViewHolder(View view) { super(view); ButterKnife.inject(this, view); } } private Callback mCallback ; public interface Callback { void onItemClick(View view, int position); } } }