我的Android成長之路(10)----利用recyclerView實現橫向滑動
阿新 • • 發佈:2019-02-14
利用recyclerView實現橫向滑動。
下面是adapter:
public class HengAdapter extends RecyclerView.Adapter<HengAdapter.MyViewHolder> implements View.OnClickListener{ private List<String> list ; private Context mContext ; private View holder ; private OnRecyclerViewItemClickListener mItemClickListener = null ; public static interface OnRecyclerViewItemClickListener { void onItemClick(View view , String data); } public WuliuHAdapter(Context context,List<String> list){ this.mContext = context ; this.list = list ; } public void setOnItemClickListener(OnRecyclerViewItemClickListener listener){ this.mItemClickListener = listener; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { holder = LayoutInflater.from( mContext).inflate(R.layout.adapter_wuliu_gridview, parent, false); return new MyViewHolder(holder); } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.mTitle.setText(list.get(position)); holder.mTitle.setOnClickListener(this); holder.mTitle.setTag(position+""); } public void setList(List<String> list){ this.list = list ; } @Override public int getItemCount() { return list.size(); } @Override public void onClick(View v) { if (mItemClickListener != null) { //注意這裡使用getTag方法獲取資料 mItemClickListener.onItemClick(v,(String)v.getTag()); } } class MyViewHolder extends RecyclerView.ViewHolder { TextView mTitle; public MyViewHolder(View view) { super(view); mTitle = (TextView) view.findViewById(R.id.adapter_wuliu_grid_title); } } }
然後是在activity中呼叫:
mHAdapter = new HengAdapter(this,list) ;
final StaggeredGridLayoutManager layoutManager= new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.HORIZONTAL);
mRecyclerView.setLayoutManager (layoutManager);
mHAdapter.setHasStableIds(true);
mRecyclerView.setAdapter(mHAdapter);