CardView(1)

来源:互联网 发布:网络用语ac是什么意思 编辑:程序博客网 时间:2024/06/05 08:13

xml属性介绍
cardBackgroundColor: 卡片布局的背景
cardCornerRadius 卡片圆角大小
conentPadding 卡片和内容的边距
cardElevation 卡片阴影大小
cardUseCompatPadding是否设置卡片内边距+
class方法介绍
setRadius
setCardBackgroundColor
setCardElevation
setContentPadding(int,int,int,int)左上右下4个方向的距离

  1. 添加架包cardview和recycleView

  2. 在最上面添加 其中的app是自己设置的名字 定义命名空间 xmlns:app="http://schemas.android.com/apk/res-auto"

  3. 实体类 以及 数据处理类

public  static List<City> getData(){        List<City>  cities=new ArrayList<>();        for (int i = 0; i <5 ; i++) {            City city=new City(R.mipmap.dizhonghai_line,"名字");            cities.add(city);        }
  1. 适配器
class IAdapter extends  RecyclerView.Adapter<ImoocViewHolder>{//一般在此处会有一个构造方法传进来一个list        @Override        public IViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {           View itemView= LayoutInflater.from(MainActivity.this).inflate(R.layout.item_view,null);            return new IViewHolder(itemView);        }        @Override        public void onBindViewHolder(IViewHolder holder, int position) {            City  city=cities.get(position);        holder.mImgIcon.setImageResource(city.getIconId());            holder.mTvName.setText(city.getName());        }        @Override        public int getItemCount() {            return cities.size();        }    }    class IViewHolder extends  RecyclerView.ViewHolder{        ImageView mImgIcon;        TextView mTvName;        public IViewHolder(View itemView) {            super(itemView);            mImgIcon= (ImageView) itemView.findViewById(R.id.img_icon);            mTvName= (TextView) itemView.findViewById(R.id.tv_name);        }    }
  1. 绑定适配器
//设置布局LinearLayoutManager:列表 //GridLayoutManager:网格 //StaggeredGridLayoutManager:瀑布流//如果只是简单地想lineralayout排序可用mRcycleView.setLayoutManager(new LinearLayoutManager(this));//这个是瀑布流 参数:列的数量 方向        mRcycleView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL));        //添加分割距离转换为瀑布流        mRcycleView.addItemDecoration(new IItemDecoration(20));        //将适配器设置给控件        mRcycleView.setAdapter(new IAdapter());

分割线类的代码

class IItemDecoration extends RecyclerView.ItemDecoration{        int space;        public  IItemDecoration(int space){            this.space=space;        }        //第一个参数是每个矩形        @Override        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {            super.getItemOffsets(outRect, view, parent, state);            if(parent.getChildAdapterPosition(view)%2==0){                outRect.top=50;            }else{                outRect.top=space;            }            outRect.bottom=space;            outRect.left=space;            outRect.right=space;        }    }