封装RecyclerViewHolder

//万能的ViewHolderpublic class CommomViewHolder extends RecyclerView.ViewHolder {    //子View集合 SparseArray 高性能存储View    private SparseArray mViews;    //布局    private View mContentView;    private LayoutInflater mInflater;    public CommomViewHolder(@NonNull View itemView) {        super(itemView);        mViews = new SparseArray<>();        //通过它即可 findviewById        mContentView = itemView;    }    //实现itemView  获取CommomViewHolder实体    public static CommomViewHolder getViewHolder(ViewGroup parent,int layoutId){        return new CommomViewHolder(View.inflate(parent.getContext(),layoutId,null));    }    //提供给外部访问View 的方法    public  T getView(int viewId){        View view = mViews.get(viewId);        if(view == null){            view = mContentView.findViewById(viewId);            mViews.put(viewId,view);        }        return (T) view;    }    //设置文本    public CommomViewHolder setText(int viewId, String text) {        TextView tv = getView(viewId);        tv.setText(text);        return this;    }    //设置图片链接    public CommomViewHolder setImageUrl(Context mContext, int viewId, String url) {        ImageView iv = getView(viewId);        GlideHelper.loadUrl(mContext, url, iv);        return this;    }    //设置图片链接    public CommomViewHolder setImage(Context mContext, int viewId, String imString) {        ImageView iv = getView(viewId);        UtilTools.getImageToString(imString,iv);        return this;    }    //压缩    public CommomViewHolder setImageUrl(Context mContext, int viewId, String url, int w, int h) {        ImageView iv = getView(viewId);       // GlideHelper.loadSmollUrl(mContext, url, w, h, iv);        return this;    }    //设置图片文件    public CommomViewHolder setImageFile(Context mContext, int viewId, File file) {        ImageView iv = getView(viewId);       // GlideHelper.loadFile(mContext, file, iv);        return this;    }    //设置图片    public CommomViewHolder setImageResource(int viewId, int resId) {        ImageView iv = getView(viewId);        iv.setImageResource(resId);        return this;    }    //设置背景颜色    public CommomViewHolder setBackgroundColor(int viewId, int color) {        ImageView iv = getView(viewId);        iv.setBackgroundColor(color);        return this;    }    //设置文本颜色    public CommomViewHolder setTextColor(int viewId, int color) {        TextView tv = getView(viewId);        tv.setTextColor(color);        return this;    }    //设置控件的显示隐藏    public CommomViewHolder setVisibility(int viewId, int visibility) {        TextView tv = getView(viewId);        tv.setVisibility(visibility);        return this;    }}

该ViewHolder进行试验 app 显示的Item 是这样的 显示不全

Android开发遇到的问题----自定义RecyclerView Adapter Item 显示不全_第1张图片

 

出现问题的代码定位

   //实现itemView  获取CommomViewHolder实体    public static CommomViewHolder getViewHolder(ViewGroup parent,int layoutId){        return new CommomViewHolder(View.inflate(parent.getContext(),layoutId,null));    }

是因为Item的View 没有依附到parent之上

 

将上面代码修改为

    //实现itemView  获取CommomViewHolder实体    public static CommomViewHolder getViewHolder(ViewGroup parent,int layoutId){        return new CommomViewHolder( LayoutInflater.from(parent.getContext()).inflate(layoutId, parent, false));    }

就开始正常显示Item

Android开发遇到的问题----自定义RecyclerView Adapter Item 显示不全_第2张图片

 

 

 

更多相关文章

  1. android实现涂鸦,保存涂鸦后的图片,清屏
  2. Android图片缓存加强版(LruCache+DiskLruCache+软引用)
  3. Android文件图片上传的详细讲解(三)---模式回调类
  4. android保存图片到图库
  5. Android的GridView控件点击图片变暗效果
  6. Android 分别使用Post与Get实现网络图片加载
  7. android 从sdcard 读取图片 剪切 粘贴
  8. Android使用AsyncTask下载图片并显示进度条功能
  9. Android 部分内容设置颜色、字体、超链接、图片

随机推荐

  1. 一次爬美团网美食团购的经历
  2. 那些年,我在大学接过的外包项目
  3. JDBC自定义工具类(properties配置文件方式
  4. COVID-19每日据整理|04-02
  5. 怎样绘制漂亮的统计图表|第一期
  6. 手把手教你调试代码并使用Echarts进行数
  7. COVID-19每日数据|04-03
  8. 怎样绘制漂亮的统计图表|柱状图的正确打开
  9. 再多建议,不如亲身经历
  10. Python分析三个月微博热搜数据带你回顾20