CardView的学习

CardView的一些属性:
CardView 其实就是个帧布局,5.0后新出的一种控件
在gradle文件下添加依赖库:

compile ‘com.android.support:cardview-v7:26.0.0-alpha1’

app:cardBackgroundColor这是设置背景颜色
app:cardCornerRadius这是设置圆角大小
app:cardElevation这是设置z轴的阴影
app:cardMaxElevation这是设置z轴的最大高度值
app:cardUseCompatPadding是否使用CompatPadding
app:contentPadding文本内容边距


用RecyclerView来实现CardView的线性布局Demo

public class CardViewDemo extends AppCompatActivity {
    private List<CityInfo> mCityInfos ;
    private RecyclerView mRecyClerView;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        initView();
        //准备数据
        initData();
        //设置布局
        mRecyClerView.setLayoutManager(new LinearLayoutManager(this));
        //设置适配器
        mRecyClerView.setAdapter(new CityRecyclerAdapter(this));

    }

    private void initView() {
        mRecyClerView =  (RecyclerView) findViewById(R.id.recyclerview);
    }

    private void initData() {
        mCityInfos = new ArrayList<>();
        for (int i = 0; i < 9; i++) {
            CityInfo city = new CityInfo(R.mipmap.dizhonghai_line,"地中海");
            CityInfo city1 = new CityInfo(R.mipmap.rihan_line,"日韩");
            CityInfo city2 = new CityInfo(R.mipmap.hotline,"热线");
            mCityInfos.add(city);
            mCityInfos.add(city1);
            mCityInfos.add(city2);
        }
    }

    /**
     * RecyclerView继承adapter加自定义的Holder泛型
     * onCreateViewHolder();方法用来加载item布局
     * onBindViewHolder();用来设置控件
     * getItemCount();返回item个数
     */
    class CityRecyclerAdapter extends RecyclerView.Adapter<CityViewHolder> {
        private Context context;

        public CityRecyclerAdapter(Context context) {
            this.context = context;
        }

        @Override
        public CityViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            //
            View view = LayoutInflater.from(context).inflate(R.layout.item_city, null);
            return new CityViewHolder(view);
        }

        @Override
        public void onBindViewHolder(CityViewHolder holder, int position) {
            CityInfo cityInfo = mCityInfos.get(position);
            holder.mCityName.setText(cityInfo.getCityName());
            holder.mCityIcon.setImageResource(cityInfo.getCityPath());
        }

        @Override
        public int getItemCount() {
            return mCityInfos.size();
        }
    }

    /**
     * 自定义的RecyclerHolder 继承 RecyclerView.ViewHolder
     * 可以直接在ViewHolder构造器里find控件,再不用去适配器里find
     */
    class  CityViewHolder extends RecyclerView.ViewHolder{
        private ImageView mCityIcon;
        private TextView mCityName;

        public CityViewHolder(View itemView) {
            super(itemView);
            mCityIcon = itemView.findViewById(R.id.img_icon);
            mCityName = itemView.findViewById(R.id.tv_name);
        }
    }

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值