RecyclerView是v7提供的控件
布局:
<android.support.v7.widget.RecyclerView android:id="@+id/rlv_helper_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1"></android.support.v7.widget.RecyclerView>
adapterpublic class SettingHelperAdapter extends RecyclerView.Adapter<SettingHelperAdapter.MyViewHolder> { RecyelerItemClickListener listener = null; List<SettingHelperInfo> data = null; int selectPosition = -1; Context context ; public SettingHelperAdapter(Context context,List<SettingHelperInfo> data,RecyelerItemClickListener recyelerItemClickListener){ this.context = context; this.data = data; listener = recyelerItemClickListener; } public SettingHelperAdapter(Context context,List<SettingHelperInfo> data){ this.context = context; this.data = data; } public void setData(List<SettingHelperInfo> data){ this.data = data; } /** * */ @Override public SettingHelperAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.lv_setting_helper_item,parent,false)); return holder; } /** */ @Override public int getItemCount() { if(data==null) return 0; return data.size(); } /** * 数据绑定 * @param holder * @param position */ @Override public void onBindViewHolder(MyViewHolder holder, final int position) { SettingHelperInfo info = data.get(position); holder.mTVHelperTitle.setText(info.title); if(position==selectPosition){ holder.widgetEdittextLine.setBackgroundColor(android.graphics.Color.parseColor("#12b7f5")); holder.widgetTextLine.setBackgroundColor(android.graphics.Color.parseColor("#12b7f5")); holder.ivHelperPickage.setVisibility(View.GONE); holder.mTVHelperTitle.setTextColor(context.getResources().getColor(R.color.setting_item_click_color)); holder.mLLHelperContent.setVisibility(View.VISIBLE); holder.mTVContent.setText(info.content); holder.mIvSelected.setImageResource(RHelper.getDrawableResIDByName(context, "fold")); }else{ holder.widgetEdittextLine.setBackgroundColor(android.graphics.Color.parseColor("#E5E5E5")); holder.widgetTextLine.setBackgroundColor(android.graphics.Color.parseColor("#E5E5E5")); holder.mTVHelperTitle.setTextColor(context.getResources().getColor(R.color.tishi)); holder.ivHelperPickage.setVisibility(View.VISIBLE); // holder.mIvSelected.setImageDrawable(RHelper.getDrawableResIDByName(context,"fold")); holder.mIvSelected.setImageResource(RHelper.getDrawableResIDByName(context,"unfold")); holder.mLLHelperContent.setVisibility(View.GONE); } if(position==0){ holder.widgetEdittextLine.setVisibility(View.GONE); } holder.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(listener!=null) { listener.itemClickCallBack(null, position); }else{//当前显示 //关闭所有 if(selectPosition==position){ selectPosition = -1; }else { selectPosition = position; } notifyDataSetChanged(); } } }); } class MyViewHolder extends RecyclerView.ViewHolder { //标题ll布局 LinearLayout mLLHelperTitle; //内容ll布局 LinearLayout mLLHelperContent; //标题文字 TextView mTVHelperTitle; //选中状态的图片 ImageView mIvSelected; //内容文本 TextView mTVContent; //标题图片 ImageView ivHelperPickage; //上面线条 View widgetEdittextLine; //下面线条 View widgetTextLine; public MyViewHolder(View itemView) { super(itemView); mLLHelperTitle = (LinearLayout) itemView.findViewById(R.id.ll_heper_item_title); mLLHelperContent = (LinearLayout) itemView.findViewById(R.id.ll_heper_item_content); mTVHelperTitle = (TextView) itemView.findViewById(R.id.tv_helper_title); mIvSelected = (ImageView) itemView.findViewById(R.id.iv_selected); mTVContent = (TextView) itemView.findViewById(R.id.tv_content); ivHelperPickage = (ImageView) itemView.findViewById(R.id.iv_helperPickage); widgetTextLine = (View) itemView.findViewById(R.id.widget_text_line); widgetEdittextLine = (View) itemView.findViewById(R.id.widget_edittext_line); } public void setOnClickListener(View.OnClickListener listener) { itemView.setOnClickListener(listener); } } }
RecyclerView的使用_android
最新推荐文章于 2022-10-07 14:06:37 发布