RecyclerView的使用_android

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>


adapter
public 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);
        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章